L1-003. 個位數統計
給定一個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
//一開始想法是用一個數組存儲每一個數字,但是沒想到這下數字作爲一個整數保存在了[0],改用字符串轉數組
//一開始想着length知道了,只需要申請length長度的動態數組就可以了,但是提交總有一個測試點過不了,就想到是申請內存不成功的問題
#include<iostream>
#include<string>
using namespace std;
int main(){
int i=0;
int index[10]={0};//存儲每個數的次數
string s;
int num[1000];
cin>>s;
for(;i<s.length();i++){//這裏length()不要忘記寫括號,這是一個函數
num[i] = s[i];
}
for(int j=0;j<10;j++){
for(int k=0;k<s.length();k++){
if((s[k]-'0')==j) index[j]+=1;//這裏改了好久,一開始傻傻地把s[k]與j比較,但是沒想到他們的數據類型的不同
}
}
//輸出
for(int j=0;j<10;j++){
if(index[j]!=0)
cout<<j<<":"<<index[j]<<endl;
}
return 0;
}