【(高职专科组)第十一届蓝桥杯省模拟赛答案】小明非常不喜欢数字 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);
    }
}
posted @ 2020-04-21 20:08  爱做梦的子浩  阅读(819)  评论(0编辑  收藏  举报