思路
由于该整数的位数可能会到1000位,不能用常规的进制转换法求得位数
为了确定位数,可以:
- gets(str)获取字符串数组
- strlen(str)获取字符串长度(即位数)
代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
char str[1001];
gets(str);
int len = strlen(str);
int count[10] = {0}; // count[0] ~ count[9]代表了‘0’~‘9’各自出现的次数
for(int i = 0; i < len; i++) {
count[str[i] - '0'] ++; // 数字字符转换成数字 作为下标
}
for(int i = 0; i< 10 ; i++) {
if(count[i] != 0) {
printf("%d:%d\n", i, count[i]);
}
}
}