题目
【问题描述】
小明非常不喜欢数字 2,包括那些数位上包含数字 2 的数。如果一个数的数位不包含数字 2,小明将它称为洁净数。
请问在整数 1 至 n 中,洁净数有多少个?
【输入格式】
输入的第一行包含一个整数 n。
【输出格式】
输出一行包含一个整数,表示答案。
【样例输入】
30
【样例输出】
18
【评测用例规模与约定】
对于 40% 的评测用例,1 <= n <= 10000。
对于 80% 的评测用例,1 <= n <= 100000。
对于所有评测用例,1 <= n <= 1000000。
解题思路
将int类型的数字转换为String类型的字符串,再用字符串的contains方法判断字符串是否包含“2”,如果包含则不为洁净数,反之则为,count++。
小提示
字符串的contains方法判断的是是否含有字符串,双引号不能掉
代码
import java.util.Scanner;
public class Main {//蓝桥杯要求class命名为Main,且无package
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int count = 0;
for(int i=1;i<=n;i++){
String str = i+"";//转为字符串
if(str.contains("2")){
continue;//不为洁净数continue结束当前for循环
}
count++;//为洁净数则count++
}
System.out.println(count);
}
}