板栗說算法 之 PAT 乙級 1006 換個格式輸出整數(全方面解析)

一、題目

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

輸入格式:

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

輸出格式:

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

輸入樣例 1:

234

輸出樣例 1:

BBSSS1234

輸入樣例 2:

23

二、思路 

1.根據首先分析格式,百位數用B,十位數用S,個位數輸出1到個位數

2.判斷幾位數,我這裏使用string進行錄入便於提取,只要用size()就能分析是幾位數。

3.循環根據位數來打印相應的格式

三、代碼實現

#include <iostream>
using namespace std;

#include <string>

int main()
{
    //用戶輸入
    string num;
    cin >> num;
    
    //輸出庫
    string str = "1SB";
    
    //從最高位進行打印,動態進行分辨
    for(int i = num.size()-1,j = 0;i >= 0; i--, j++)
    {
        //數字轉換
        int temp_num = num[j] - '0';
        
        //假如是個位數的時候
        if( i == 0)
        {
            //打印從1到個位數
            for(int o = 1; o <= temp_num; o++)
            {
                cout << o;
            }
            break;
        }
        
        //根據位數進行打印
        for(int k = 0; k < temp_num; k++)
        {
            cout << str[i];
        }
    }
    
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章