java 中的数字金字塔嵌套循环
Number Pyramid Nested Loop in java
我想知道你是否可以帮助我。我正在尝试在 java 中编写一个嵌套的 for 循环,它显示一个看起来像这样的数字金字塔;
1
2 1
4 2 1
8 4 2 1
16 8 4 2 1
32 16 8 4 2 1
这是我目前拥有的:
int n = 32;
for (int i = 1; i <= n; i *= 2) {
for (int k = 1; k <= i; k *= 2) {
System.out.print(k + "\t");
}
System.out.println();
}
如何让输出正确显示
首先您需要计算您的金字塔需要多少层。如果我没记错的话应该是ceil(log2(n)) + 1
。之后你可以遍历关卡并填充它们。还要记得在每个级别后打印一个新行。
您可以还原一个计数器并添加一个 for
来关注选项卡:
int n = 32;
for (int i = 1; i <= n; i *= 2) {
for (int j = i; j < n; j *= 2)
System.out.print("\t");
for (int k = i; k >= 1; k /= 2)
if (i == k)
System.out.print(k);
else
System.out.print("\t" + k);
System.out.println();
}
在解决这个问题时"exercise"我遇到了两个问题。
您需要知道要打印多少行。使用此信息,您可以计算每行前面需要多少个空 space。
你需要知道最大数的位数。这需要在打印每个数字时预留足够的space。这是我的结果。
1
2 1
4 2 1
8 4 2 1
16 8 4 2 1
32 16 8 4 2 1
此外,我将使用您想要的行数而不是最大行数来启动程序。这对我来说似乎更容易。
我想知道你是否可以帮助我。我正在尝试在 java 中编写一个嵌套的 for 循环,它显示一个看起来像这样的数字金字塔;
1
2 1
4 2 1
8 4 2 1
16 8 4 2 1
32 16 8 4 2 1
这是我目前拥有的:
int n = 32;
for (int i = 1; i <= n; i *= 2) {
for (int k = 1; k <= i; k *= 2) {
System.out.print(k + "\t");
}
System.out.println();
}
如何让输出正确显示
首先您需要计算您的金字塔需要多少层。如果我没记错的话应该是ceil(log2(n)) + 1
。之后你可以遍历关卡并填充它们。还要记得在每个级别后打印一个新行。
您可以还原一个计数器并添加一个 for
来关注选项卡:
int n = 32;
for (int i = 1; i <= n; i *= 2) {
for (int j = i; j < n; j *= 2)
System.out.print("\t");
for (int k = i; k >= 1; k /= 2)
if (i == k)
System.out.print(k);
else
System.out.print("\t" + k);
System.out.println();
}
在解决这个问题时"exercise"我遇到了两个问题。
您需要知道要打印多少行。使用此信息,您可以计算每行前面需要多少个空 space。
你需要知道最大数的位数。这需要在打印每个数字时预留足够的space。这是我的结果。
1 2 1 4 2 1 8 4 2 1 16 8 4 2 1 32 16 8 4 2 1
此外,我将使用您想要的行数而不是最大行数来启动程序。这对我来说似乎更容易。