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