题目:
思路:
由题得知输入得正整数位数很大, 故超出 C++ 整型的范围, 于是使用字符串数组进行存储. 另外使用一个数组对输入数字的个位数字进行统计, 然后进行输出
注意点:
字符串数组中, 每个位置存储的元素的类型为 char 类型, 故利用 ASCLL 码获取其在 C++ 中的整型数字, res[num[i]-'0']++, 其中 num[i]-'0'为输入数字的其中一个数字
代码:
- #include<iostream>
- #include<stdio.h>
- using namespace std;
- int main()
- {
- char num[1010];
- int res[10] = { 0 };
- scanf("%s", &num);
- // 进行计数
- for (int i = 0;i < strlen(num);i++)
- {
- res[num[i] - '0'] += 1;
- }
- // 进行输出
- for (int i = 0;i < 10;i++)
- {
- if (res[i])
- {
- printf("%d:%d\n", i, res[i]);
- }
- }
- return 0;
- }
- View Code
来源: http://www.bubuko.com/infodetail-3453029.html