【PTA】?L1-003 个位数统计? (C++)
2023-12-28 17:03:52
?
题目链接:L1-003 个位数统计
题目要求:
输入格式:
每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数?N。
输出格式:
对?N?中每一种不同的个位数字,以?D:M
?的格式在一行中输出该位数字?D
?及其在?N?中出现的次数?M
。要求按?D
?的升序输出。
输入样例:
100311
输出样例:
0:2
1:3
3:1
思路:?
1.先定义一个字符串n
2.在一个for循环中n[i]代表这一串字符的每一个字符,使用n[i]-'0'将输入的字符转化为数字形式、
3.定义一个整型数组x[1000],并且初始化为0
4.循环遍历i将x[n[i]-'0']进行++操作
5.最后判断x[n[i]-'0']是否为0,不为0的输出i值和x[i];
注意:这里输入整数不要定义整型,因为定义int型的话,int型是有范围的,如果数太大的话会溢出,没有办法统计后面的数字。
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
string n;
cin >> n;
int x[1000] = {0};
for(int i = 0; i < n.size(); i++)
{
x[n[i] - '0'] ++;
}
for(int i = 0; i < 10; i ++)
{
if(x[i] != 0)
cout << i << ":" << x[i] << endl;
}
return 0;
}
测试结果:
?
文章来源:https://blog.csdn.net/m0_63168877/article/details/135139160
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!