十一届蓝桥模拟赛 洁净数有多少个 JAVA

问题描述
  小明非常不喜欢数字 2,包括那些数位上包含数字 2 的数。如果一个数的数位不包含数字 2,小明将它称为洁净数。
  请问在整数 1 至 n 中,洁净数有多少个?
输入格式
  输入的第一行包含一个整数 n。
输出格式
  输出一行包含一个整数,表示答案。
样例输入
30
样例输出
18
评测用例规模与约定
  对于 40% 的评测用例,1 <= n <= 10000。
  对于 80% 的评测用例,1 <= n <= 100000。
  对于所有评测用例,1 <= n <= 1000000。
  
思路:刚开始本来想用split一个一个拆出来去判断比较,但是那么写会很麻烦,就用了while,这道题目其实就是类似水仙花的一道题,只要是2就重新循环,最后++即可。

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		int ans = 0;
		A: for (int i = 1; i <= n; i++) {  // A:开始循环
			int x = i;                     // x替换i
			while (x != 0) {               // x不等于0,进入while循环
				int t = x % 10;            // 取位
				if (t == 2) {              // 判断是2
					continue A;            // 跳转A,继续循环
				}
				x /= 10;                   // 取每一位
			}
			ans++;                         // 结果
		}
		System.out.println(ans);           // 输出
	}
}

小剧场:触到神经就要懂得鼓掌。When you touch the nerve,you need to know how to clap.

发布了219 篇原创文章 · 获赞 454 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/weixin_43771695/article/details/105610131