让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。
输入格式:
每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。
输出格式:
每个测试用例的输出占一行,用规定的格式输出 n。
输入样例 1:
234
输出样例 1:
BBSSS1234
输入样例 2:
23
输出样例 2:
SS123
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int n,i;
int bai,shi,ge;
scanf("%d",&n);
//思路:
//因为n<1000,所以分类讨论之后就三种情况:一位数,两位数,三位数。
//一位数:输出1-n即可;
//两位数:十位是多少,就先输出多少个S,再重复一位数操作;
//三位数:百位是多少,就先输出多少个B,再重复两位数操作,再重复一位数操作。
if(n<10){ //一位数
for(i=1;i<=n;i++){
printf("%d",i);
}
}
else if(n<100){ //两位数
shi=n/10;
ge=n%10;
for(i=0;i<shi;i++){
printf("S");
}
for(i=1;i<=ge;i++){
printf("%d",i);
}
}
else if(n<1000){ //三位数
bai=n/100;
shi=n/10-bai*10;
ge=n%10;
for(i=0;i<bai;i++){
printf("B");
}
for(i=0;i<shi;i++){
printf("S");
}
for(i=1;i<=ge;i++){
printf("%d",i);
}
}
return 0;
}