【发布时间】:2014-11-07 19:41:54
【问题描述】:
我有金字塔集的布局,但我不知道如何组合或从数学上得到接下来的几个数字。我需要的是:
1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
我现在的代码是:
int x = 7;
for (int i =1; i<=x; i++) {
for (int j =1; j<=x-i; j++) {
System.out.print(" ");
}
for (int k=1; k<=i;k++) {
System.out.printf("%2d",k);
}
for(int k=i-1; k>=1;k--) {
System.out.printf("%2d",k);
}
System.out.println(" ");
}
但我的输出结果如下:
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 5 6 5 4 3 2 1
1 2 3 4 5 6 7 6 5 4 3 2 1
很抱歉,如果这很奇怪;这是我在这个网站上的第一个问题。如何修改我的代码以获得另一个金字塔?
【问题讨论】:
-
我编辑了您问题中的代码,使其缩进与其结构相匹配,因此回答者可以更轻松地提供帮助。我不知道缩进是否只是在您将代码粘贴到此站点时才出现乱码,但如果不是,也许查看这个新缩进会让您更容易找到任何错误。
-
您尝试生成的数字金字塔称为Pascal’s triangle。
-
您的输出是否需要缩进以使每一行都准确居中?或者,如果只有左边缘是一条直线对角线,就像在您当前的输出中一样,即使右边缘是不平衡的,也可以吗?将文本完美居中会更难。
-
数字需要居中。
标签: java loops for-loop nested-loops pascals-triangle