前言
正文
思路
见代码注释
参考题解
#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;
}