创建一个显示下图的java代码:
1
2 3 4
3 4 5 6 7
4 5 6 7 8 9 10
嘿伙计们!新来的。我们有一个涉及java编程的练习,并且出于某种原因它似乎让我的头脑在解决这个问题上大打折扣。到目前为止我做了什么,但输出不正确。
public class Pyramid {
public static void main(String[] args) {
int size = 10;
for (int row = 1; row <= size; row++) {
int j = 1;
int i = 1;
int counter1 = 1;
int counter2 = 1;
// print space
while (j++ <= size - row) {
System.out.print(" ");
}
// count up
j = size - (size - row);
if (j == 10) j = 0;
counter1 = 1;
while (counter1 <= row) {
System.out.print(j);
if (j == 9 && counter1 != row) j = -1;
j++;
counter1++;
}
j = j - 2;
counter2 = 1;
// count down
while (counter2 < row) {
System.out.print(j--);
if (j < 0) j = 9;
counter2++;
}
System.out.print("\n");
}
}
}
答案 0 :(得分:1)
我可以看到你发布的两个主要错误。
size
应该等于4(除非它只是一个例子,行数并不重要)。除此之外:
System.out.println()
。答案 1 :(得分:0)
在这里,你在每个原始中点之后进行倒计时。因此,不是增加数量,而是减少倒数部分(j
正在减少)。
在这里你需要4个原始数据。但是你已经为一些条件设定了10个原始数据(这里你不需要指定最高数字。你只需要输入原始数量就足够了。请找到下面的逻辑。)
即使您需要增加原始数量,也不应更改逻辑。
逻辑: 对于每个原始元素,元素的数量应该是原始的奇数,每个原始元素的第一个元素应该以原始数字开头。
例如,
如果我们考虑第3个原始数据,那么第3个奇数是= (3*2) - 1 = 5
。因此原始元素的数量为5
。
第3个raw的start元素是3
。
原始的将是:
3,4,5,6,7
请尝试以下代码:
int n = 5;
for (int i = 1; i < n; i++) {
int odd = (i*2) - 1;
for (int j = 1; j <= odd; j++) {
if (j==1) {
for (int x = n; x >=i; x--)
System.out.print(" ");
}
System.out.print(((j + i)-1) + " ");
}
System.out.println();
}
输出是:
1
2 3 4
3 4 5 6 7
4 5 6 7 8 9 10
答案 2 :(得分:-1)
int size = 10;
for (int row = 1, last = 1; row <= size; ++row, last += 3) {
for (int j = 1, max = size - row; j <= max; ++j)
System.out.print(" ");
for (int j = row; j <= last; ++j)
System.out.print(" " + j);
System.out.println();
}
// result:
// 1
// 2 3 4
// 3 4 5 6 7
// 4 5 6 7 8 9 10
// 5 6 7 8 9 10 11 12 13
// 6 7 8 9 10 11 12 13 14 15 16
// 7 8 9 10 11 12 13 14 15 16 17 18 19
// 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
// 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
// 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
答案 3 :(得分:-1)
试试这个
类金字塔{
public static void main(String[] args) {
int myLevel;
int i, j, k;
int x = 1;
myLevel = 6;
for (i = 1; i <= myLevel; i++) {
for (k = 1; k <= myLevel - i; k++) {
System.out.print(" ");
}
for (j = k + 1; j <= myLevel; j++) {
System.out.print(x);
}
for (int l = myLevel; l > k - 1; l--) {
System.out.print(x);
}
x++;
System.out.println("");
}
}
}