蓝桥杯:特别数的和
题解:
由于小明只对2,0,1,9感兴趣,因此我们直接遍历1到n,查找满足小明兴趣的数字并加和即可。
由于最大为五位数,我们可以采用分离出五位数的各个位的数字来进行比对。
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int sum = 0;
int place[6];
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int temp = i;
place[1] = temp/10000;
temp = temp-10000*place[1];
place[2] = temp/1000;
temp = temp-1000*place[2];
place[3] = temp/100;
temp = temp-100*place[3];
place[4] = temp/10;
temp = temp-10*place[4];
place[5] = temp;
int j = 1;
for(;j<=5;j++)
{
if(place[j]==0)
{
continue;
}
else
{
break;
}
}
while(j<=5)
{
if(place[j]==2||place[j]==0||place[j]==1||place[j]==9)
{
sum=sum+i;
break;
}
else
j++;
}
}
printf(" %d \n",sum);
return 0;
}