A.幸运数
#include<bits/stdc++.h>
using namespace std;
int nsum(int n)
{
int res=0;
while(n)
{
res+=n%10;
n/=10;
}
return res;
}
int main()
{
int sum=0;
for(int i=1;i<=9;i++)
{
for(int j=0;j<=9;j++)
{
if(nsum(i)==nsum(j))
sum++;
}
}
for(int i=10;i<=99;i++)
{
for(int j=0;j<=99;j++)
{
if(nsum(i)==nsum(j))
sum++;
}
}
for(int i=100;i<=999;i++)
{
for(int j=0;j<=999;j++)
{
if(nsum(i)==nsum(j))
sum++;
}
}
for(int i=1000;i<=9999;i++)
{
for(int j=0;j<=9999;j++)
{
if(nsum(i)==nsum(j))
sum++;
}
}
cout<<sum<<endl;
return 0;
}
B
#include<bits/stdc++.h>
using namespace std;
string get(int x)
{
string res;
while(x)
{
int a=x%16;
if(a<10)
res+='0'+a;
else
res+='a'+a-10;
x/=16;
}
reverse(res.begin(),res.end());
return res;
}
bool check(string s)
{
for(auto t:s)
{
if(!isalpha(t))
return false;
}
return true;
}
int main()
{
int res=0;
for(int i=2022; ;i++)
{
string s=get(i);
if(check(s)){
res=i;
break;
}
}
cout<<res<<endl;
return 0;
}
C
#include<bits/stdc++.h>
using namespace std;
int cnt;
string s[3000];
int main()
{
for(int i=1;i<=26;i++)
s[cnt++]='A'+i-1;
for(int i=0; ;i++)
{
for(char j='A';j<='Z';j++)
{
s[cnt++]=s[i]+j;
}
if(cnt>=2022) break;
}
cout<<s[2021]<<endl;
return 0;
}
D
#include<bits/stdc++.h>
using namespace std;
bool isrun(int year)
{
if(year%400==0||year%4==0&&year%100!=0)
return true;
return false;
}
int nsum(int n)
{
int res=0;
while(n)
{
res+=n%10;
n/=10;
}
return res;
}
int main()
{
int month[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int cnt=0;
for(int i=1900;i<=9999;i++)
{
if(isrun(i))
month[2]=29;
else
month[2]=28;
for(int j=1;j<=12;j++)
{
for(int k=1;k<=month[j];k++)
{
if(nsum(i)==nsum(j)+nsum(k))
cnt++;
}
}
}
cout<<cnt<<endl;
return 0;
}
E
#include<bits/stdc++.h>
using namespace std;
int main()
{
int m[]={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 cnt=0;
for(int i=0;i<30;i++)
{
for(int j=i+1;j<30;j++)
{
if(m[i]*m[j]>2022)
cnt++;
}
}
cout<<cnt<<endl;
return 0;
}