題目:潔凈數
問題描述
小明非常不喜歡數字 2,包括那些數位上包含數字 2 的數。如果一個數的數位不包含數字 2,小明將它稱為潔凈數。
請問在整數 1 至 n 中,潔凈數有多少個?
輸入格式
輸入的第一行包含一個整數 n。
輸出格式
輸出一行包含一個整數,表示答案。
樣例輸入
30
樣例輸出
18
評測用例規模與約定
對於 40% 的評測用例,1 <= n <= 10000。
對於 80% 的評測用例,1 <= n <= 100000。
對於所有評測用例,1 <= n <= 1000000。
要點
-
JAVA中int轉String類型有三種方法
String.valueOf(i) Integer.toString(i) i+""
-
JAVA中遍歷字符串的三種方法
1).toCharArray()
2).length(), charAt()
3).length(), substring(i ,i+1)//方法一 char[] charArray = str.toCharArray(); for (char i:charArray){ System.out.println(i); } /*for (int i = 0; i < charArray.length; i++) { System.out.println(c[i]); }*/ // 方法二 for (int i = 0; i < str.length(); i++) { System.out.println(str.charAt(i)); } //方法三 for (int i = 0; i < str.length(); i++) { System.out.println(str.substring(i, i + 1)); }
代碼
代碼有特別種方法,大家參考要點自己搭配
import java.util.Scanner;
public class 潔凈數 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.close();
int count = 0;
for (int i = 1; i <= n; i++) {
char[] array = String.valueOf(i).toCharArray();
int flag = 1;
for (char j : array) {
if (j == '2') {
flag = 0;
break;
}
}
if (flag == 1) {
count++;
}
}
System.out.println(count);
}
}