给定一个k位整数N = dk-1*10k-1 + ... + d1*101 + d0 (0<=di<=9, i=0,...,k-1, dk-1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N = 100311,则有2个0,3个1,和1个3。
输入格式:
每个输入包含1个测试用例,即一个不超过1000位的正整数N。
输出格式:
对N中每一种不同的个位数字,以D:M的格式在一行中输出该位数字D及其在N中出现的次数M。要求按D的升序输出。
输入样例:100311输出样例:
0:2 1:33:1
#include <stdio.h> #include <string.h> #define Max 1000 int count(int *a,int *b,int len); int main() { int n = 0; int i,j; int cnum = 0,nnum = 0; int len = 0; char num[Max]; int change[Max]; int a[10] = {0}; scanf("%s",&num); len = strlen(num); for(i=0;i<len;i++) { change[cnum++] = (int)(num[nnum++]-'0'); } count(a,change,len); for(i=0;i<10;i++) { if(a[i]!=0) { printf("%d:%d\n",i,a[i]); } } return 0; } /*********************/ int count(int *a,int *b,int len) { while(len--) { switch(b[len]) { case 0 : a[0]++; break; case 1 : a[1]++; break; case 2 : a[2]++; break; case 3 : a[3]++; break; case 4 : a[4]++; break; case 5 : a[5]++; break; case 6 : a[6]++; break; case 7 : a[7]++; break; case 8 : a[8]++; break; case 9 : a[9]++; break; default : break; } } return 0; }