目录
题目一: 编辑
代码:
题目二:
代码:
题目三:
代码:
题目四:
代码:
题目五:
代码:
题目六:
代码七:
题目八:
代码:
题目九:
代码:
题目一:
代码:
#include<iostream>//统计2出现过的次数
using namespace std;
int main()
{int cnt=0;for(int i=1;i<=2020;i++){int x=i;while(x){if(x%10==2)cnt++;x/=10;}}cout<<cnt;
}
题目二:
代码:
#include <iostream>//统计有一共有多少天,再看有几周
using namespace std;
int res;
//先判断润年
bool is_r(int n){if((n % 4 == 0 && n % 100 != 0) || n % 400 == 0)return true;return false;
}
int main(){for(int i = 1901;i <= 2000;i ++)if(is_r(i)) res += 366;else res += 365;int x = res / 7;cout << x << endl;return 0;
}
题目三:
代码:
#include <iostream>//因为一组2*5会得到0,统计2、5个数,取少的
using namespace std;
int main()
{int cnt2=0,cnt5=0;for (int i=1;i<=10;i++) {for (int j=1;j<=10;j++) {int x;cin>>x;while (x%2==0) cnt2++,x/=2;while (x%5==0) cnt5++,x/=5;}}cout<<min(cnt2,cnt5)<<'\n';return 0;
}
题目四:
代码:
#include <iostream>//即位16进制,大于等于10的一位用字母表示
using namespace std;
int main()
{for(int i=2022;;i++)//从2022开始循环{int a=i;int flag=1;while(a){if(a%16<10)//有一位小于10,即不是字母表示,就跳出{flag=0;break;}a/=16;//16进制}if(flag==1){cout<<i;break;}}return 0;
}
题目五:
代码:
#include<iostream>
#include<cstring>
using namespace std;//相当于26进制
int main()
{int a1=0, a2=0, a3=0;char a[30] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";for (int i = 1; i <= 2022; i++){a3++;if (a3 > 26){a3 = 1;a2++;if (a2 > 26){a2 = 1;a1++;}}}//cout<<a1<<" "<<a2<<" "<<a3;cout << a[a1 - 1] << a[a2 - 1] << a[a3 - 1];
}
题目六:
代码七:
#include <iostream>
using namespace std;
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int sum(int n)//求和
{int ans=0;while(n){ans+=n%10;n/=10;}return ans;
}int main()
{long long ans=0;int day=0;for(int i=1900;i<=9999;i++)//遍历年{if((i%4==0 && i%100!=0)||i%400==0)//判断是否闰年a[2]=29;elsea[2]=28;for(int j=1;j<=12;j++)//遍历月{for(int k=1;k<=a[j];k++)//遍历天{if(sum(i)==sum(j)+sum(k))ans++;}}}cout<<ans;return 0;
}
题目八:
代码:
#include <iostream>//直接遍历
using namespace std;
int main()
{int a[]={99,22,51,63,72,61,20,88,40,21,63,30,11,18,99,12,93,16,7,53,64,9,28,84,34,96,52,82,51,77};int ans=0;for(int i=0;i<=29;i++){for(int j=i+1;j<=29;j++)if(a[i]*a[j]>=2022)ans++;}cout<<ans;return 0;
}
题目九:
代码:
#include <iostream>//借助dfs思想
using namespace std;
int arr[30][60] = { 0 };
char array1[30][60];
int cnt = 0;
void dfs(int x, int y)
{if (array1[x][y] == '1' && arr[x][y] == 0)//没访问过,且为1{arr[x][y] = 1;cnt++;if (x < 29)dfs(x + 1, y);if (x > 0)dfs(x - 1, y);if (y < 59)dfs(x, y + 1);if (y > 0)dfs(x, y - 1);}
}
int main()
{int max = -1, i, j;for (i = 0; i < 30; i++){for (j = 0; j < 60; j++)cin >> array1[i][j];}for (i = 0; i < 30; i++){for (j = 0; j < 60; j++){dfs(i, j);if (cnt > max)max = cnt;cnt = 0;}}cout << max;return 0;
}