题目:
我的思路:
把输入的整数存进一个数组里,然后遍历数组。例如8131,hash[8]++;hash[1]++;hash[3]++;hash[1]++;
用各位的数字作为hash表的下标,将各位数字出现的次数累加存入hash数组。
最后再依次输出hash数组里面的值
#include<stdio.h>
#include<string.h>
int main(){
char num[100000];
gets(num);
// puts(num);
int hash[10];
for(int i=0;i<=strlen(num);i++){
int t=num[i]-'0';
// printf("%d\n",t);
hash[t]++;
}
for(int i=0;i<10;i++){
if(hash[i]>0)
printf("%d:%d\n",i,hash[i]);
}
}
(看上去貌似对了,可是我还有个问题:我一开始是把输入的数字构成的数组大小写死了)
书上思路:
((^-^)V思路基本一致)