牛牛新買了一本算法書,算法書一共有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)+" ");
}
}
}