#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int num[10];
int main()
{
int i,j;
char n[1010];
scanf("%s",n);
for(i=0;n[i]!='\0';i++)
{
num[n[i]-'0']++;
}
for(i=0;i<10;i++)
{
if(num[i]!=0)
{
printf("%d:%d\n",i,num[i]);
}
}
return 0;
}
代码思路:用字符数组存储输入,每个字符作为另一个数组的下标,通过该下标的值得累加来表示该数出现了几次;
这是典型的用空间换时间的算法;