[編程題] 頁碼統(tǒng)計

牛牛新買了一本算法書,算法書一共有n頁,頁碼從1到n。牛牛于是想了一個算法題目:在這本算法書頁碼中0~9每個數(shù)字分別出現(xiàn)了多少次?
輸入描述:
輸入包括一個整數(shù)n(1 ≤ n ≤ 1,000,000,000)

輸出描述:
輸出包括一行10個整數(shù),即0~9這些數(shù)字在頁碼中出現(xiàn)的次數(shù),以空格分隔。行末無空格。

輸入例子:
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)+" ");
           }
        }

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容