个位数统计
作者:互联网
题目:
给定一个 k 位整数 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。
输入格式:
每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。
输出格式:
对 N 中每一种不同的个位数字,以 D:M
的格式在一行中输出该位数字 D
及其在 N 中出现的次数 M
。要求按 D
的升序输出。
输入样例:
100311
输出样例:
0:2
1:3
3:1
初始操作:
用int类型的变量存储输入的整数,在运用整除10,取余10,进行D次数的计算。
如此操作不适用于较大的数据。
改进:
用string存储输入的整数,再用桶排序存储D的次数。
#include<iostream>
using namespace std;
const int N = 10005;
int q[N]={0};//初始化为0
#include<vector>
int main()
{
string a;
cin >> a;
int length = a.size();
int num = 0;
//开始从个位读入
for (int i = a.size() - 1; i >= 0; i--)
{
num = a[i] - '0';
//cout << "此时num是" << num << endl;
q[num]++;
}
//开始处理
for (int i = 0; i < 10; i++)
{
if (q[i] != 0)
cout << i << ":" << q[i] << endl;
}
}
标签:输出,int,个位数,次数,统计,格式,输入 来源: https://blog.csdn.net/m0_62894677/article/details/123034186