1021 个位数统计

来源:互联网 发布:免费远程控制软件 编辑:程序博客网 时间:2024/06/05 13:30

题目信息:

给定一个k位整数N = dk-1*10k-1 + ... + d1*101 + 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:21:33:1
代码示例:

#include <iostream>#include <algorithm>#include <iomanip>#include <cmath>#include <cstdio>#include <cstring>#include <cctype>using namespace std;char N[1000];void solve(){int num1[10]={0,1,2,3,4,5,6,7,8,9},num2[10]={0};for(int i=0;N[i];i++){switch(N[i]-'0'){case 0:num2[0]++;break;case 1:num2[1]++;break;case 2:num2[2]++;break;case 3:num2[3]++;break;case 4:num2[4]++;break;case 5:num2[5]++;break;case 6:num2[6]++;break;case 7:num2[7]++;break;case 8:num2[8]++;break;case 9:num2[9]++;break;default:cout<<"error";break;}}   for(int i=0;i<10;i++)   {   if(num2[i])   {   cout<<num1[i]<<":"<<num2[i]<<endl;   }   }}int main(){cin>>N;solve();system("pause");return 0;}


分析: 这道题主要是统计输入的不大于1000位的数据中0-9的个数,然后按照规定的格式输出,这里主要有两点注意:

             1.数据最大1000位,所以可以以字符数组类型存储,然后再遍历字符数组统计个数。

             2.规定的0-9建立一个数组,遍历过程中递增就可以统计数字出现个数。


0 0
原创粉丝点击