一、題目
讓我們用字母 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];
}
}
}