题目链接(https://pintia.cn/problem-sets/994805260223102976/problems/994805318855278592)
《算法笔记》上面关于这道题的解法思路清奇,饶了18个弯子,不忍卒读。明明是送分题,哪里需要那么长代码,一个输入,几个输出就可以搞定,都不用中间变量。
8行代码方案如下:
#include <cstdio>
int main(){
int n;
scanf("%d",&n);
for (int i=0; i<n/100; i++) putchar('B');
for (int i=0; i<n%100/10; i++) putchar('S');
for (int i=1; i<=n%10; i++) printf("%d",i);
}
至于《算法笔记》上面为什么要写那么复杂,我猜可能是作者难题做的比较多,反而做简单题时容易小题大做,或者也可能作者是想使用更具有普适性的解法,如果题目说n的取值范围是n<1000000000,那么作者的解法可能更好,但是题目说n<1000,很明显直接输入输出就行了,再搞复杂那就是自欺欺人了。