L1-003 個位數統計 (15 分)
給定一個 k 位整數 N=d?k?1??10?k?1??+?+d?1??10?1??+d?0?? (0≤d?i??≤9, i=0,?,k?1, d?k?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
1.本題主要運用/和%符號完成對每一位數字的存盤與統計
2.另一個關鍵是創建一個桶,借助for回圈統計0~9出現次數
3.其次注意數字位數,1000位大數用字串存盤
上C++代碼
#include <iostream>
#include <cstring>
using namespace std;
int a[10];
int main()
{
string s;
cin >> s;
memset(a, 0, sizeof(a));
for (int i = 0; s[i] != '\0'; i++)
{
a[s[i] - '0']++;
}
for (int i = 0; i <= 9; i++)
{
if (a[i] != 0)
{
cout << i << ":" << a[i] << endl;
}
}
return 0;
}
輕松AC 0.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/266985.html
標籤:其他
上一篇:陣列的排序(冒泡排序)
下一篇:Ocean Currents
