//1021 個位數統計(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
C:
#include <stdio.h>
int main(int argc, const char * argv[]) {
char c;
int num[10] = {0};
while((c = getchar()) != '\n')
num[c - '0']++;
for (int i = 0; i < 10; i++) {
if (num[i] != 0) {
printf("%d:%d\n", i, num[i]);
}
}
return 0;
}
思路:1.1000位的正整數,所以要做字符串處理,不能用int定義
2.統計0-9數字在字符串中出現的次數,因此定義一個數組存放0-9出現的次數,輸出按D的升序輸出,因此次數M大于0的輸出次數D:M
3.處理字符時與'0'的差即為十進制中數字大小