gpt4 book ai didi

Java 整数金字塔

转载 作者:太空宇宙 更新时间:2023-11-04 13:47:21 25 4
gpt4 key购买 nike

我正在做一项作业,要求用户输入 1-15 之间的整数,然后显示他们选择的行数的整数金字塔。

我一切正常,但如果数字输入大于 10 的整数,我就会因为两位数所需的额外空间而陷入困境。我在下面附上了我的代码。如果有人可以提供一点帮助,我们将不胜感激。

int lines = input.nextInt();
for (int row = 1; row <= lines; row++)
{
for (int column = 1; column <= lines - row; column++)
{
System.out.print(" ");
}
for (int num = row; num >= 1; num--)
{
System.out.print((num>=10)?+num:" "+num);
}
for (int num = 2; num <= row; num++)
{
System.out.print((num>=10)?+num:" "+num);
}
System.out.println();
}

使用我当前的代码,如果用户输入 13,它将产生以下输出:

                         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 910
11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11
12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12
13 12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12 13

我只需要弄清楚如何获得两位数整数的额外空间。所需的输出将是:

                         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
11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11
12 11 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 11 12

最佳答案

看来您选择了(稍微)困难的方式来做到这一点。

最简单的方法是为每个数字保留三个空格(这样单个数字之间就会有两个空格)。

您选择执行的是可变间距,具体取决于每列中数字的实际长度。第一步是将输出语句更改为以下内容:

    System.out.print(" "+num);

因此,您将始终在每行的数字之间打印一个空格。如果你运行它,你会发现它几乎可以工作,除了三角形的顶部未对齐。要解决这个问题,您必须调整您的

    System.out.print("  ");

语句,以便在每列中打印的空格数取决于稍后将在每列中出现的数字的值。为此,您必须计算出一些涉及的算术,以便在""(两个空格)和""(三个空格)之间进行选择。这很简单,但我会让您解决细节。

可以进一步扩展此想法以支持 100 行或更多,但尚不清楚您是否需要该功能。

关于Java 整数金字塔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30699959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com