目錄
題目一:??編輯
代碼:?
題目二:?
代碼:
題目三:
代碼:
題目四:
代碼:
?題目五:
?代碼:
題目六:
代碼七:
題目八:
代碼:
題目九:
代碼:?
題目一:?
代碼:?
#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;
}