一、题目要求如下
二、解题思路
含有2、0、1、9的数字,都取出来相加。
什么叫含有2、0、1、9。例如:3333333323这个数含有2,属于要求,加起来求和。
题目要求用户输入一个数字为n,然后要我们求1~n每个数含不含有2、0、1、9,含有就累加起来。所以看回我们解题思路第一句话,是不是就是:取出含有2、0、1、9的数字并相加。
三、代码实现
#include <stdio.h>
int num(int n){
int s;
while(n!=0){
s=n%10;
n=n/10;
if(s==2 || s==0 || s==1 || s==9) {
return 1;
}
}
return 0;
}
int main()
{
int sum=0,n,i;
scanf("%d",&n);
//从1开始一直到n这个数逐个判断是否含有2、0、1、9这写数字,含有就把这个数字加给sum
for(i=1;i<=n;i++){
if(num(i)) sum+=i;
}
printf("%d",sum);
return 0;
}