[编程题] 页码统计

牛牛新买了一本算法书,算法书一共有n页,页码从1到n。牛牛于是想了一个算法题目:在这本算法书页码中0~9每个数字分别出现了多少次?
输入描述:
输入包括一个整数n(1 ≤ n ≤ 1,000,000,000)

输出描述:
输出包括一行10个整数,即0~9这些数字在页码中出现的次数,以空格分隔。行末无空格。

输入例子:
999

输出例子:
189 300 300 300 300 300 300 300 300 300

import java.util.Scanner;
public class Test1 {
        public static int Cal(int n,int data){
            int num=0;
            int temp=1;
            int formal=n;
            while(n!=0){
                if(n%10<data)
                    num+=n/10*temp;
                else if(n%10==data)
                    num+=n/10*temp+(formal%temp+1);
                else num+=(n/10+1)*temp;
                n/=10;
                temp*=10;
            }
            return num;
        }
        public static int Cal0(int n){
            int num=0;
            int temp=1;
            int formal=n;
            while(n!=0){
                if(n%10==0)
                    num+=(n/10-1)*temp+(formal%temp+1);
                else num+=(n/10)*temp;
                n/=10;
                temp*=10;
            }
            return num;
        }
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            int[] result=new int[10];
            System.out.print(Cal0(n)+" ");
           for(int i=1;i<=9;i++){
               System.out.print(Cal(n,i)+" ");
           }
        }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容