PAT乙級1021

1021 個位數統計 (15分)

題目地址:https://pintia.cn/problem-sets/994805260223102976/problems/994805300404535296ios

難搞哦

輸入格式

每一個輸入包含 1 個測試用例,即一個不超過 1000 位的正整數 N。測試

輸出格式:

對 N 中每一種不一樣的個位數字,以 D:M 的格式在一行中輸出該位數字 D 及其在 N 中出現的次數 M。要求按 D 的升序輸出。spa

輸入樣例

100311

輸出樣例

0:2
1:3
3:1

個人理解

前面的N= 、、、是數學表達式,看到後面的我就明白什麼意思了,統計字符串中數字0 ~ 9 出現的次數,而且按照0 ~ 9 的順序進行輸出。code

代碼段

#include <iostream>
using namespace std;
int main(){
    string N;
    cin >> N;
    int counter[10] = {0};
    int limit = N.length();
    for (int i = 0; i < limit; i++) {
        counter[N[i] - '0']++;
    }
    for (int i = 0; i < 10; i++) {
        if (counter[i] != 0) {
            // cout << i << ":" << counter[i] << endl;
            printf("%d:%d\n", i, counter[i]);
        }
    }
    return 0;
}

更改過程

  1. 可貴的一遍AC、、、
  2. 並且發現一個問題,爲何我電腦上以前測試的使用cout是比printf輸出要快的,但是在PAT上提交測試printf是比較快的,難搞哦
相關文章
相關標籤/搜索