問題描述
小明非常不喜歡數字 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); // 輸出
}
}