【(高職專科組)第十一屆藍橋杯省模擬賽答案】小明非常不喜歡數字 2,包括那些數位上包含數字 2 的數。如果一個數的數位不包含數字 2,小明將它稱爲潔淨數。

題目:潔淨數

問題描述
小明非常不喜歡數字 2,包括那些數位上包含數字 2 的數。如果一個數的數位不包含數字 2,小明將它稱爲潔淨數。
  請問在整數 1 至 n 中,潔淨數有多少個?

輸入格式
  輸入的第一行包含一個整數 n。

輸出格式
  輸出一行包含一個整數,表示答案。

樣例輸入
30

樣例輸出
18

評測用例規模與約定
  對於 40% 的評測用例,1 <= n <= 10000。
  對於 80% 的評測用例,1 <= n <= 100000。
  對於所有評測用例,1 <= n <= 1000000。

要點

  1. JAVA中int轉String類型有三種方法

    String.valueOf(i)
    Integer.toString(i)
    i+""
    
  2. 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));
    }
    

    JAVA中遍歷字符串中字符的三種方法

代碼

代碼有特別種方法,大家參考要點自己搭配

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);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章