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("\n"); return 0; }
这个倒是代码量和Python差不多,效率是真的高