給定一個k位整數(shù)N = dk-110k-1 + ... + d1101 + d0 (0<=di<=9, i=0,...,k-1, dk-1>0)滔灶,請編寫程序統(tǒng)計每種不同的個位數(shù)字出現(xiàn)的次數(shù)宽气。例如:給定N = 100311潜沦,則有2個0,3個1涝影,和1個3争占。
輸入格式:
每個輸入包含1個測試用例臂痕,即一個不超過1000位的正整數(shù)N。
輸出格式:
對N中每一種不同的個位數(shù)字姆怪,以D:M的格式在一行中輸出該位數(shù)字D及其在N中出現(xiàn)的次數(shù)M澡绩。要求按D的升序輸出。
#include <iostream>
#include<map>
using namespace std;
int main()
{
map<char,int> temp;
char Num[1100];
cin>>Num;
for (int i=0;Num[i]!='\0';i++){
// if(temp.find(Num[i])!=temp.end()){
// temp[Num[i]]++;
// }
// else{
// temp[Num[i]]=1;
// }
temp[Num[i]]++;
}
for (map<char,int>::iterator i=temp.begin();i!=temp.end();i++){
cout<<i->first<<":"<<i->second<<endl;
}
return 0;
}
注意事項
1.map的使用Key - value鍵值對
2.注釋部分的代碼可以用temp[Num[i]]++;代替,已經(jīng)封裝好了揪胃,用起來很方便氛琢。這里注意
temp[Num[i]]如若不存在會自動插入0
3.map中由于它內(nèi)部有序,由紅黑樹保證,默認要求按key的升序輸出