2的个数
题目描述
请编写一个程序,输出0到n(包括n)中数字2出现了几次。
输入
输入一个正整数n。
输出
输出0到n的数字中2出现了几次。
样例输入
2
10
20
样例输出
1
1
3
Code
package Week4;
import java.util.Scanner;
public class Q1 {
//请编写一个程序,输出0到n(包括n)中数字2出现了几次。
//输入一个正整数n。
//输出0到n的数字中2出现了几次。
public static void main(String[] args) {
//想法:要记录比输入的整数小的所有数中有没有2的出现
//就必须知道整数的每一位数字
//就需要用一个数组表示,但是整数不能直接转为数组,所以就需要把整数转为字符串再转为数组。
Scanner sc = new Scanner(System.in);
int num,sum;
while(sc.hasNext()){
sum=0;
num = sc.nextInt();
//用一个j表示小于num的所有数
for(int j=0;j<=num;j++){
// 用一个字符串来表示输入的数字。
String str = Integer.toString(j);
// 新建一个数组用来保存j每一位的数字
int[] arr = new int[str.length()];
for(int i=0;i<str.length();i++){
//定义一个字符存储第i位的数字
char ch = str.charAt(i);
//将ch赋值给数组arr的第i位。
arr[i] = Integer.parseInt(Character.toString(ch));
//判断第i位的数字是否为2
if(arr[i]==2){
//System.out.println(arr[i]);
sum++;
}
}
}
System.out.println(sum);
}
}
}