给定一个k位整数
N
=
d
k
−
1
1
0
k
−
1
+
.
.
.
+
d
1
1
0
1
+
d
0
(
0
≤
d
i
≤
9
,
i
=
0
,
.
.
.
,
k
−
1
,
d
k
−
1
>
0
)
\N=d_{k-1}10^{k-1}+...+d_110^1+d_0(0 \leq d_i\leq 9,i=0,...,k-1,d_{k-1}>0)
N=dk−110k−1+...+d1101+d0(0≤di≤9,i=0,...,k−1,dk−1>0),请编写程序统计每种不同的各位数字出现的次数。例如:给定
N
=
100311
N=100311
N=100311,则有2个0,3个1,和1个3。
输入格式:
每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。
输出格式:
对N中每一种不同的个位数字,以D:M的格式在一行中输出该位数字D及其在N中出现的次数M。要求按D的升序输出。
输入样例:
100311
输出样例:
0:2
1:3
3:1
#include <stdio.h>
int main()
{
char A[1001];
int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;
int i;
scanf("%s", A);
getchar();
for(i = 0; A[i] != '\0'; i++)
{
if(A[i]-'0' == 0)a++;
if(A[i]-'0' == 1)b++;
if(A[i]-'0' == 2)c++;
if(A[i]-'0' == 3)d++;
if(A[i]-'0' == 4)e++;
if(A[i]-'0' == 5)f++;
if(A[i]-'0' == 6)g++;
if(A[i]-'0' == 7)h++;
if(A[i]-'0' == 8)j++;
if(A[i]-'0' == 9)k++;
}
if(a != 0)printf("0:%d\n", a);
if(b != 0)printf("1:%d\n", b);
if(c != 0)printf("2:%d\n", c);
if(d != 0)printf("3:%d\n", d);
if(e != 0)printf("4:%d\n", e);
if(f != 0)printf("5:%d\n", f);
if(g != 0)printf("6:%d\n", g);
if(h != 0)printf("7:%d\n", h);
if(j != 0)printf("8:%d\n", j);
if(k != 0)printf("9:%d", k);
return 0;
}