PAT 换个格式输出整数

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

输入格式:

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

输出格式:

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

输入样例 1:

234

输出样例 1:

BBSSS1234

输入样例 2:

23

输出样例 2:

SS123
s=[]
def lists(k,t):
    for i in range(k):
        s.append(t)
    return s
a=int(input())
b=a%10
c=a//10%10
d=a//100
lists(d,'B')
lists(c,'S')
for i in range(1,b+1):
    s.append(str(i))
print(''.join(s))

Python版的,属于投机取巧型,毕竟Python有些函数实在太好用了,怎么能不用呢?

#include <iostream>
#include <stdio.h>
using namespace std;

int main()
{
    int n,a,b,c;
    cin>>n;
    a=n%10;
    b=n/10%10;
    c=n/100%10;
    int i=0;
    for(;i<c;i++){
        printf("B");
    }
    for(i=0;i<b;i++)
        printf("S");
    for(i=1;i<=a;i++){
        printf("%d",i);
    }
    printf("
");
    return 0;
}

这个倒是代码量和Python差不多,效率是真的高

原文地址:https://www.cnblogs.com/andrew3/p/12683210.html