问题描述
小明对数位中含有2、0、1、9的数字很感兴趣(不包括前导0),在1到40中这样的数包括1、2、9、10至32、39和40,共28个,他们的和是574。
问,在1至n中,所有这样的数的和是多少?
输入格式
输入一行包括两个整数n。
输出格式
输出一行,包含一个整数,表示满足条件的数的和。
样例输入
40
样例输出
574
代码
#include<stdio.h>
int main()
{
int sum=0,pog=0;
int i,j,n;
scanf("%d",&n);
for(j=1;j<=n;j++)
{
pog=0;
i=j;
while(i!=0)//让i进入判断数字,以防改变j
{
if(i%10==2||i%10==0||i%10==1||i%10==9)
{
pog=1;//观测值
}
i=i/10;
}
if(pog==1)
{
sum+=j;
}
}
printf("%d",sum);
return 0;
}
结果

这段代码解决了一个数学问题,即找出1到n中所有数位包含2、0、1或9的数字(不包括前导0)并计算它们的和。给定一个整数n,例如40,程序通过遍历并检查每个数字的每一位来确定是否包含指定的数位,然后累加这些数字得到总和,输出结果为574。
1万+

被折叠的 条评论
为什么被折叠?



