输入样例:
40
输出样例:
574
解题思路:
因为数据范围n小,可以直接枚举,当范围大时需要数位dp。可以在整数的基础上取出每个个位数验证,也可以将整数转为字符串验证。
Java代码:( 处理整数)import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
scan.close();
int ans = 0;
for(int i = 1; i <= n; i++) {
int x = i;
while(x > 0) {
int t = x % 10;//取个位
x /= 10;
if(t == 2 || t == 0 || t == 1 || t == 9) {//除去个位
ans += i;
break;
}
}
}
System.out.println(ans);
}
}
Java代码:(处理字符串)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
scan.close();
int ans = 0;
for(int i = 1; i <= n; i++) {
String s = i + "";
if(s.contains("2") || s.contains("0")|| s.contains("1")||s.contains("9")) {
ans += i;
}
}
System.out.println(ans);
}
}



