[PAT B] 1006 換個格式輸出整數

Squ1rrel發表於2019-12-25

題目

讓我們用字母 B 來表示“百”、字母 S 表示“十”,用 12...n 來表示不為零的個位數字 n(<10),換個格式來輸出任一個不超過 3 位的正整數。例如 234 應該被輸出為 BBSSS1234,因為它有 2 個“百”、3 個“十”、以及個位的 4。

輸入格式:

每個測試輸入包含 1 個測試用例,給出正整數 n(<1000)。

輸出格式:

每個測試用例的輸出佔一行,用規定的格式輸出 n。

輸入樣例:

234

輸出樣例:

BBSSS1234

思路分析

簡單題,按編碼順序求各個數位即可

舉一反三

顯然非十進位制數也可如此處理

程式碼

#include <iostream>

using namespace std;

int main() {
    int num;
    cin >> num;
    int g = num % 10;
    num = (num - g) / 10;

    int s = num % 10;
    num = (num - s) / 10;

    int b = num % 10;
    while (b--) {
        cout << "B";
    }
    while (s--) {
        cout << "S";
    }
    for (int i = 1; i <=g; i++) {
        cout << i;
    }
    return 0;
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結
辛勞 篤定 輕苦 微甜 ----汪曾祺

相關文章