【问题描述】
小明对数位中含有2、0、1、9的数字很感兴趣(不包括前导0),在1到40中这样的数包括1、2....40,共28个,他们的和是574。问在1到n中,所有这样的数的和是多少?
【输入格式】
输入一行包括两个整数n
【输出格式】
输出一行,包含一个整数,表示满足条件的数的和。
【样例输入】
40
【样例输出】
574
【思路】
1.写一个方法,判断该数中是否有2,0,1,9。
[判断方法:先除10取余,该数在除10缩小,循环]
2.枚举
import java.util.Scanner;
public class demo0701 {
public static int f(int n)
{
int t;
while(n>0)
{
t=n%10;
n/=10;
if(t==0||t==1||t==2||t==9)
return 0;
} return 1;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int i;
int sum=0;
for(i=0;i<=n;i++)
{
if(f(i)==0)
sum=sum+i;
}
System.out.println(sum);
}
}
【附录】