问题描述
小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包 括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。 请问,在 1 到 2019 中,所有这样的数的和是多少?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
思路分析
思路1:获取1-2019每个数字的千位(不为0)、百位、十位、个位,将每个数字和0、2、1、9这四个数字进行比较。如果存在,就累加到变量值count上。
思路2:将数字转成字符串,获取每一位的数字,将每一个数字与0、2、1、9这四个数字进行比较。如果存在,就累加到变量值上。
代码展示
public static void main(String[] args) {
int count=0;
for(int i=1;i<=2019;i++) {
//将数字转成字符串
String j = i+ "";
//将字符串转成字符数组
char[] cs = j.toCharArray();
for(int k =0;k<cs.length;k++) {
if(cs[k]=='2' ||cs[k]=='0' || cs[k]=='1' || cs[k]=='9') {
count+=i;
break;
}
}
}
System.out.println(count);
}