让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。
输入格式:
每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。
输出格式:
每个测试用例的输出占一行,用规定的格式输出 n。
输入样例 1:
234
输出样例 1:
BBSSS1234
解析:这道题比较简单,唯一要想的就是个位数的输出,我想的就是创建一个1-9的数组,获取个位的数值,按这个数值作为索引调用Arrays.copyOf(数组名,位数)获取数组再遍历出来。
public class Pta_1006 {
public static void main(String[] args) {
int bai = 0;
int shi = 0;
int ge = 0;
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
Scanner scanner = new Scanner(System.in);
String num = scanner.nextLine();
if (num.length() == 1) {
ge = num.charAt(0) - 48;
int[] res = Arrays.copyOf(arr, ge);
for (int res_ge : res) {
System.out.print(res_ge);
}
}
if (num.length() == 2) {
shi = num.charAt(0) - 48;
for (int x = 0; x < shi; x++) {
System.out.print("S");
}
ge = num.charAt(1) - 48;
int[] res = Arrays.copyOf(arr, ge);
for (int res_ge : res) {
System.out.print(res_ge);
}
}
if (num.length() == 3) {
bai = num.charAt(0) - 48;
for (int b = 0; b < bai; b++) {
System.out.print("B");
}
shi = num.charAt(1) - 48;
for (int y = 0; y < shi; y++) {
System.out.print("S");
}
ge = num.charAt(2) - 48;
int[] res = Arrays.copyOf(arr, ge);
for (int res_ge : res) {
System.out.print(res_ge);
}
}
}
}