第十届蓝桥杯大赛软件类省赛C/C++大学C组
一、求和
小明对数位中含有2、0、1、9的数字很感兴趣,在1到40中这样的数包括1、2、9、10至32、39和40,共28个,他们的和是574。请问,在1到2019中,所有这样的数的和是多少?
#include<stdio.h>
int main()
{
int temp,sum=0;//中间交换变量和加起来的和
int i;//从1—2019
int c;//拿来判断关键字2019
for(i=1;i<=2019;i++)//扩展写法for(i=1;1<=i&&i<=2019;i++)
{
temp=i;
while(temp!=0){
c=temp%10;
if(c==2||c==0||c==1||c==9){
sum+=i;
temp=0;
break;
}
else{//可以不用else
temp=temp/10;//如果最后一位不符合判断条件,则整除10去掉最后一位。
}//
}
}
printf("%d",sum);
return 0;
}
结果为:1905111