1021. 个位数统计 (15) map

来源:互联网 发布:baocms7.1完整源码 编辑:程序博客网 时间:2024/06/18 13:43

时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
给定一个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:2
1:3
3:1

//把输入的char数组的元素当做map的索引#include<iostream>#include<map>#include<string.h>#include<string>using namespace std;int main(){    char a[1001];    cin >> a;    map<char, int> m;    for (int i = 0; i < strlen(a); i++)    {        m[a[i]]++;//以char类型为索引    }    for (auto it = m.begin(); it != m.end(); ++it)//(map)会自动排序(从小到大)    {         cout << it->first << ":" << it->second << endl;    }    return 0;}

这里写图片描述

//第二种,一般的写法#include <iostream>#include <string>using namespace std;int main(){    int n,i;    char a[1000];    int s[10]={0};    cin>>a;    n=strlen(a);    for(i=0;i<n;i++)    {        s[a[i]-48]++;    }    for(i=0;i<10;i++)    {     if(s[i]>0)      {            cout<<i<<":"<<s[i]<<endl;      }    }    system("pause");    return 0;}
0 0
原创粉丝点击