题目描述:
小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和40,共 28 个,他们的和是 574。 请问,在 1 到 n 中,所有这样的数的和是多少?
输入格式:
输入一行包含整数 n(1≤n≤10000 )
输出描述:
import java.util.Scanner;
public class SpetialNum {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner in=new Scanner(System.in);
int n=in.nextInt();
int sum=0;
//从1到n遍历(不要忘了n),如果满足条件,求和
for(int i=1;i<=n;i++) {
if(cotainNum(i)){
sum+=i;
}
}
System.out.println(sum);
}
private static boolean cotainNum(int i) {
// TODO 自动生成的方法存根
while(i!=0) {
int a=i%10;
if(a==2 || a==0 || a==1 || a==9) {
return true;
}else {
i/=10;
}
}
return false;
}
}
输出一行,包含一个整数,表示满足条件的数的和。
输入输出样例:
示例输入:
40
输出:
574