PAT乙级 1006 换个格式输出整数

题目描述

让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。

输入格式:

每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。

输出格式:

每个测试用例的输出占一行,用规定的格式输出 n。

输入样例1:

234

输出样例1:

BBSSS1234

输入样例2:

23

输出样例2:

SS123

代码

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
char ch[2];
int main()
{
          
   
    int n;
    cin >> n;
    ch[0] = S;
    ch[1] = B;
    int ge = n % 10;
    vector<char> ans;
    for(int i = ge; i >= 1; i--)
        ans.push_back(i + 48);
    int k = 0;
    n /= 10;
    while(n)
    {
          
   
        int t = n % 10;
        while(t--)
            ans.push_back(ch[k]);
        n /= 10;
        k++;
    }
    for(int i = ans.size() - 1; i >= 0; i--)
        cout << ans[i];
    return 0;
}
经验分享 程序员 微信小程序 职场和发展