PAT1021 个位数统计

PAT1021 个位数统计

题目

给定一个kk位整数N=dk110k1+...+d1101+d0(0di9,i=0,...,k1,dk1>0)N=d_{k-1}10^{k-1}+...+d_110^1+d_0(0≤d_i≤9,i=0,...,k-1,d_{k-1}>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定NN=100311,则有2个0,3个1,和1个3。

输入格式

每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数N

输出格式

NN中每一种不同的个位数字,以D:M的格式在一行中输出该位数字D及其在NN中出现的次数M。要求按D的升序输出。

输入样例

1
100311

输出样例

1
2
3
0:2
1:3
3:1

思路

以字符串接收数字,遍历,统计,因为0-9已经默认排好序了不用再排了。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//pat1021
#include <stdio.h>
#include <cstring>
int main(int argc, char const *argv[])
{
char a[1000], b[10] = { 0 };
scanf("%s", &a);
for(int i = 0; i < strlen(a); i++)
{
b[a[i] - 48]++;
}
for(int i = 0; i < 10; i++)
{
if(b[i] != 0)
{
printf("%d:%d\n", i, b[i]);
}
}
return 0;
}
文章作者: Shengyaqingfeng
文章链接: https://creazyboyone.github.io/pat1021/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Shengyaqingfeng's Blog