特别数的和-191

发布时间 2023-04-07 21:38:15作者: 帆のBlog

小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。

请问,在 1 到 n 中,所有这样的数的和是多少?

输入一行包含一个整数 (1≤n≤10^4)

 1 import java.util.Scanner;
 2 
 3 public class test3 {
 4     
 5     //判断是否有2 0 1 9
 6     static boolean isNum(String str) {
 7         for (int j = 0; j < str.length(); j++) {//将每个数字转换成字符串后,按位判断
 8             if (str.charAt(j)=='2' || str.charAt(j)=='0' || str.charAt(j)=='1' || str.charAt(j)=='9') {
 9                 return true;
10             }
11         }
12         return false;
13     }
14     
15     public static void main(String[] args) {
16         Scanner scan = new Scanner(System.in);
17         int n = scan.nextInt();
18         int sum = 0;
19         for (int i = 1; i <= n; i++) {//循环从1到n中,对每个数测试
20             String string = i+"";
21             if (isNum(string)) {
22                 sum += i;
23 //                System.out.println(i+"true");
24             }else {
25 //                System.out.println(i+"false");
26             }
27         }
28         System.out.println(sum);
29     }
30 
31 }