十一屆藍橋模擬賽 潔淨數有多少個 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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章