import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if (n < 0 || n >= 1000) {
System.out.println("请输入一个0到999之间的正整数。");
return;
}
//不用区分几位数
int ge = n % 10; // 个位
int shi = (n / 10) % 10; // 十位
int bai = (n / 100); // 百位
//shi/bai = 0时,循环i<=0不成立 不会打印
BaiPrint(bai);
ShiPrint(shi);
GePrint(ge);
}
public static void GePrint(int ge) {
for (int i = 1; i <= ge; i++) {
System.out.print(i);
}
}
public static void ShiPrint(int shi) {
for (int i = 1; i <= shi; i++) {
System.out.print("S");
}
}
public static void BaiPrint(int bai) {
for (int i = 1; i <= bai; i++) {
System.out.print("B");
}
}
}
最开始的版本 测试显示部分正确 没找到原因
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
//划分区间 重复代码多 没想清楚 shi/bai为0时的情况
int ge = 0;
int shi = 0;
int bai = 0;
if(n<10){
ge = n % 10;
GePrint(ge);
}else if(n >= 10 && n < 100){
ge = n % 10;
shi = n / 10 % 10;
ShiPrint(shi);
GePrint(ge);
}else if(n>=100 && n<1000){
ge = n % 10;
shi = n / 10 % 10;
bai = n / 100 % 10;
BaiPrint(bai);
ShiPrint(shi);
GePrint(ge);
}
}
public static void GePrint(int ge){
for(int i=1;i<=ge;i++){
System.out.print(i);
}
}
public static void ShiPrint(int shi){
for(int i=1;i<=shi;i++){
System.out.print("S");
}
}
public static void BaiPrint(int bai){
for(int i=1;i<=bai;i++){
System.out.print("B");
}
}
}