前言

传送门

正文


思路

见代码注释

参考题解

#include<iostream>
using namespace std;
/*
本题直接使用除基取余分离出所给正整数的百位,十位和个位数字,
其百位上的数字就表示输出几个‘百’,十位上的数字就表示输出
几个'十',个位上的数字就表示从1输出到该个位数字 。由于这里
已经说明n为正整数,因此也可以用while循环代替do while循环,
否则使用while循环进行除基取余,需要注意特判0 
*/
int main(){
	int n,num=0,res[3];//num表示位数 
	cin>>n;
	do{
		res[num++]=n%10;
		n/=10;
	} while(n!=0);
	for(int i=num-1;i>=0;i--){
		if(i==2){//百位 
			for(int j=0;j<res[i];j++)cout<<'B'; 
		}else if(i==1){//十位
			for(int j=0;j<res[i];j++)cout<<'S';
		}else{
			for(int j=1;j<=res[i];j++)cout<<j;
		}
	}
	cout<<endl;
	
	return 0;
}