給定一個 k 位整數(shù) N=d?k?110^k?1+?+d1?10^1? +d?0??(0≤d?i≤9, i=0,?,k?1, d?k?1>0),請編寫程序統(tǒng)計(jì)每種不同的個位數(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 的升序輸出。
輸入樣例:
100311
輸出樣例:
0:2
1:3
3:1
思路:
這個題比較簡單,將數(shù)字讀取到字符串中,然后對字符串進(jìn)行從0-9的字符查找計(jì)數(shù)即可,最后將計(jì)數(shù)不為零的結(jié)果輸出即可
代碼:
//1021 個位數(shù)統(tǒng)計(jì)
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
string number;
vector<int> store;
cin >> number;
for (int i = 0; i < 10; i++)//對字符串進(jìn)行查找,查找0-9
{
int j = 0;
int count = 0;
while (j < number.size())
{
if (number[j] == '0' + i)
{
count++;//如果查找到i則計(jì)數(shù)
}
j++;
}
store.push_back(count);
}
for (int i = 0; i < 10; i++)//如果計(jì)數(shù)不為0則輸出
{
if (store[i] != 0)
{
cout << i << ':' << store[i] << endl;
}
}
return 0;
}