1.回文日期
#include <bits/stdc++.h>
using namespace std;
int month[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int main()
{
int d1,d2,s,cnt=0;
cin>>d1>>d2;
for(int i=1;i<=12;i++)//月
{
for(int j=1;j<=month[i];j++)
{
int a,b,c,d;
a=i/10;
b=i%10;
c=j/10;
d=j%10;
s=d*10000000+c*1000000+b*100000+a*10000+a*1000+b*100+c*10+d;
if(s>d1&&s<d2)
{
cnt++;
}
}
}
cout<<cnt;
return 0;
}
2.火柴棒等式
#include <bits/stdc++.h>
using namespace std;
int m[10]={6,2,5,5,4,5,6,3,7,6};
int sum(int x);
int main()
{
int n,cnt=0;
cin>>n;
for(int i=0;i<=1000;i++)
{
for(int j=0;j<=1000;j++)
{
int k;
k=sum(i)+sum(j)+sum(i+j)+4;
if(k==n)
{
cnt++;
}
}
}
cout<<cnt;
return 0;
}
int sum(int x)
{
int s=0;
if(x==0)
{
return 6;
}
while(x>0)
{
s+=m[x%10];
x/=10;
}
return s;
}
3.因式分解
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=2;i<n;i++)
{
if(n%i==0)
{
cout<<n/i;
return 0;
}
}
return 0;
}
4.数字游戏
#include <bits/stdc++.h>
using namespace std;
int main()
{
int s,cnt=0;
cin>>s;
while(s>0)
{
if(s%10==1)
{
cnt++;
}
s/=10;
}
cout<<cnt;
return 0;
}
用字符串解决
#include <bits/stdc++.h>
using namespace std;
string s;
int main()
{
int cnt=0;
cin>>s;
for(int i=0;i<=7;i++)
{
if(s[i]=='1')
{
cnt++;
}
}
cout<<cnt;
return 0;
}
5.计数问题
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,x,cnt=0;
cin>>n>>x;
for(int i=1;i<=n;i++)
{
int k=i;
while(k>0)
{
if(k%10==x)
{
cnt++;
}
k/=10;
}
}
cout<<cnt;
return 0;
}
6.数字统计
#include <bits/stdc++.h>
using namespace std;
int main()
{
int l,r,cnt=0;
cin>>l>>r;
for(int i=l;i<=r;i++)
{
int k=i;
while(k>0)
{
if(k%10==2)
{
cnt++;
}
k/=10;
}
}
cout<<cnt;
return 0;
}