java - 无法打印数字金字塔

标签 java

    for (int i = 1; i <= 4; i++)
    {
        int n = 4;

        for (int j = 1; j <= n - i; j++)
        {
            System.out.print(" ");
        }
        for (int k = i; k >= 1; k--)
        {
            System.out.print(k);
        }
        for (int l = 2; l <= i; l++)
        {
            System.out.print(l);
        }

        System.out.println();
    }

    for (int i = 3; i >= 1; i--)
    {
        int n = 3;

        for (int j = 0; j <= n - i; j++)
        {
            System.out.print(" ");
        }
        for (int k = i; k >= 1; k--)
        {
            System.out.print(k);
        }
        for (int l = 2; l <= i; l++)
        {
            System.out.print(l);
        }

        System.out.println();
    }


My output:

Enter height: 
12
1
212
32123
4321234
543212345
65432123456
7654321234567
876543212345678
98765432123456789
109876543212345678910
1110987654321234567891011
12111098765432123456789101112

它打印正确,但没有间距... 我是否需要另一个带有 println 的 for 循环,只在第一个 for 循环下打印一个空格?

此外,如果我这样做,它仍然适用于两位数高度,例如 12?

非常感谢您的帮助,谢谢。

最佳答案

你只需要玩转空格即可。

 for (int i = 1; i <= height; i++) {

    int n = height;
    int n2 = height + 1;
    for (int j = 1; j <= n - i; j++) {
        System.out.print("" + String.format("%3s", " ") + " ");
    }
    for (int k = i; k >= 1; k--) {
        System.out.print("" + String.format("%3s", k) + " ");
    }
    for (int l = 2; l <= i; l++) {
        System.out.print("" + String.format("%3s", l) + " ");
    }
    System.out.println();
    System.out.println();
}

输出:对于高度 10

                                      1 

                                  2   1   2 

                              3   2   1   2   3 

                          4   3   2   1   2   3   4 

                      5   4   3   2   1   2   3   4   5 

                  6   5   4   3   2   1   2   3   4   5   6 

              7   6   5   4   3   2   1   2   3   4   5   6   7 

          8   7   6   5   4   3   2   1   2   3   4   5   6   7   8 

      9   8   7   6   5   4   3   2   1   2   3   4   5   6   7   8   9 

 10   9   8   7   6   5   4   3   2   1   2   3   4   5   6   7   8   9  10 

关于java - 无法打印数字金字塔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53256181/

相关文章:

java - 运行 Word 文档的 Runtime.getRuntime.exec() 问题

java - 在 Java 中使用 Hibernate 更新实体列表

java - Guice注入(inject): parameter not explicity bound

java - 需要一个适用于 Windows XP Home 的轻量级 Web 服务器

java - gradle 命令失败,因为它无法启动守护进程

java - Hibernate 双向映射

java - tomcat内部有main方法吗?如果是,它如何解决与 Spring Boot 应用程序 *main* 的冲突?

Java内置类到接口(interface)

Java 表达式解析器和计算器调车场算法

java - 使用 JSON 时,我们可以将对象作为 map 中的键吗?