java - 编写一个程序,要求用户输入一个整数 (n) 并打印 n 行输出

标签 java loops

编写一个程序,要求用户输入一个整数(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/

相关文章:

java - Maven WAR 依赖项 - 无法解析包?

ruby - "each"、 "foreach"、 "collect"和 "map"之间有什么区别?

java - 如何退出Java循环?

python - 连接使用循环生成的 pandas DataFrame

excel - 使用搜索和循环从一张纸复制并粘贴到另一张纸

excel - 选择直到不等范围

java - 如何测试使用其他方法的方法 - Mockito、java、junit

java - 如何在 Spring Data 中通过示例对查询的两个日期之间的范围添加限制

java - 如何让 HK2 像 Guice 一样注入(inject)未明确配置的类?

java - KeyEvent 监听器中的多个键