编写一个程序,要求用户输入一个整数(n)并打印n行输出,第一行有n个字符,第二行有n-1个字符,...,最后一行有1个字符。每行必须以字符“A”开头。第一行的字符数为n,其中字符为
A b C d E f G h I j K l M n O p Q r S t U v W x Y z
这是我的代码:
System.out.println("How many rows for Pattern 2?: ");
int p2 = input.nextInt();
String s = input.nextLine();
char ch;
int i1 , j1;
for(i1 = p2; i1 >= 1; i1--){
ch = 'A';
for(j1 = 1; j1 <= i1; j1++){
System.out.print(" " + ch++);
}
当我尝试运行该程序时
我得到了这个字符串:
How many rows for Pattern 2?:
16
A B C D E F G H I J K L M N O P
A B C D E F G H I J K L M N O
A B C D E F G H I J K L M N
A B C D E F G H I J K L M
A B C D E F G H I J K L
A B C D E F G H I J K
A B C D E F G H I J
A B C D E F G H I
A B C D E F G H
A B C D E F G
A B C D E F
A B C D E
A B C D
A B C
A B
A
如何获得这样的输出:
How many rows for Pattern 2?: 7
A b C d E f G
A b C d E f
A b C d E
A b C d
A b C
A b
A
最佳答案
如果j1
能被2整除,则从j1
中获取字符'a' + j1 - 1
。
如果j1
不能被2整除,则从j1
中获取字符'A' + j1 - 1
。 (请注意不同的基数:'a'
和 'A'
。)
您可以通过更改内部循环的内容来实现这一点,如下所示:
for (j1 = 1; j1 <= i1; j1++) {
if (j1 % 2 == 0) {
ch = (char)('a' + j1 - 1);
} else {
ch = (char)('A' + j1 - 1);
}
System.out.print(" " + ch);
}
System.out.println();
关于java - 编写一个程序,要求用户输入一个整数 (n) 并打印 n 行输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40333751/