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();
}
如何使输出正确显示
# 1 楼答案
首先,您需要计算您的金字塔需要多少层。如果我没有弄错的话,这应该是
ceil(log2(n)) + 1
。之后,您可以循环通过标高并填充它们。还记得在每个关卡后打印新行# 2 楼答案
您可以还原一个计数器并添加一个
for
来关注选项卡:# 3 楼答案
在解决这个“练习”时,我遇到了两个问题
您需要知道要打印多少行。根据这些信息,您可以计算每行前面需要多少空格
您需要知道最大数字的位数。这对于在打印每个数字时保留足够的空间是必要的。这是我的结果
此外,我将以您想要的行数而不是最大的行数启动程序。这对我来说似乎更容易