小明对数位中含有 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 }
标签:10,特别,charAt,scan,int,191,str,Scanner From: https://www.cnblogs.com/Fangithub/p/17297444.html