PAT_B 1021 个位数统计
PAT_B 1021 个位数统计
分析
本题中要求统计的整数有可能是一个很大的整数,需要使用字符串来存,其他的可以正常做。一开始居然疏忽了,实在不应该...
题目的描述
给定一个 k 位整数
\(N=d_{k−1}10^{k−1}+⋯+d_110^1+d_0 (0≤d_i≤9,\ i=0,⋯,k−1, d_{k−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
AC的代码
#include<bits/stdc++.h>
using namespace std;
int main(){
// long long N;
// array<int, 10> wei ={0};
// cin>>N;
// // if(!N){
// // cout<<"0:1"<<endl;
// // return 0;
// // }
// do{
// wei[N%10]+=1;
// N/=10;
// }while(N);
string N;
cin>>N;
array<int, 10> wei ={0};
for(auto i:N){
wei[i-'0']+=1;
}
for(int i=0;i<10;i++){
if(wei[i]){
cout<<i<<':'<<wei[i]<<endl;
}
}
return 0;
}
本文来自博客园,作者:ghosteq,转载请注明原文链接:https://www.cnblogs.com/ghosteq/p/15841263.html