小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包 括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。 请问,在 1 到 2019 中,所有这样的数的和是多少?
思路; 将每一个数判断是否符合题中要求`,运用函数将数字转化成字符串进而转化成字符数组运用循环开判断每一位数字,将符合2,0,1,9的数字全部筛选出来,进而求和
仅供参考
代码如下:
public class Main01 {
public static void main(String[] args) {
int sum=0; //定义一个变量接收最终结果
for(int i=0;i<=2019;i++) {
if(f(i)) { //定义一个方法来筛选符合条件的数
sum+=i; //将所有符合要求的数求和
}
}
System.out.println(sum); //输出最终结果
}
public static boolean f(int n) { //定义Boolean类型方法
String str=""+n; //将获取到的值赋值给String类型
char[] ch=str.toCharArray(); //将上述String类型用.toCharArray()转化成字符数组
for(int i=0;i<ch.length;i++) { //将获取到数的每一位与题中2,0,1,9比较
if(ch[i]=='2'||ch[i]=='0'||ch[i]=='1'||ch[i]=='9') {
return true; //数中满足题中要求,含有2,0,1,9则返回true
}
}
return false; //不符合要求直接返回false
}
}
正确答案: 1905111
欢迎评论