金典算法题统计NUM以内各个数字 有多少

统计数字 【循环】【数组】

给定一个自然数 N,统计出所有不超过 N 的正整数中数字 0 到 9 出现的次数,并且依次打印出来每个数字出现的次数(0~9),用空格隔开。

输入

10

输出

1 2 1 1 1 1 1 1 1 1

(解释:在1到 10 中,只有数字 1 在整数 1 和10中重复出现了两次,其他数字都只出现了一次)

样例输入

100

样例输出

11 21 20 20 20 20 20 20 20 20



认真看注释....

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();         //输入num
        int[] arr = new int[10];        //是个数组分别代表 0 1 2 3 4 .....9
        for(int i = 1;i<=num;i++) {             //i是经过num的所有数
            int x = i;                          //定义临时变量x 装i
            while (x != 0) {                    //当x不等于0时 我就循环 --后面有除位数操作。

                arr[(x % 10)]++;            // 取各个位数累加进数组Arr

                x /= 10;                    //每次都除掉一个0
            }

        }
        String str = "";
        for(int i = 0;i<arr.length;i++)
        {

            str+=arr[i] + " ";
        }
        System.out.print(str.trim());


    }
}
 

本文来自博客园,作者:咸瑜,转载请注明原文链接:https://www.cnblogs.com/bi-hu/p/14093343.html

原文地址:https://www.cnblogs.com/bi-hu/p/14093343.html