我是 Java 编程的初学者,我想打印一个如图所示的金字塔:
我已经有了金字塔(没有数字) (x是用户想要的行数) 任何帮助都是好的!
for (int i=1; i<(2*x+1); i += 2)
{
for (int k=0; k < ((x-1) - i / 2); k++)
{
System.out.print(" ");
}
for (int j=0; j<i; j++)
{
System.out.print(x);
}
System.out.println("");
}
最佳答案
如果您创建一个单独的方法来打印每一行和单元格,然后使用 if
语句来确定要打印的内容,那么编写和读取可能会更简单一些。 cell
方法封装了打印内容的所有逻辑。
for (int i = 0; i < size; i++)
System.out.println(line(i, size));
private String line(int row, int size) {
StringBuilder line = new StringBuilder();
for (int col = 0; col < size * 2 + 1; col++) {
line.append(cell(row, col, size));
}
return line;
}
或者如果您使用的是 Java 8:
return IntStream.range(0, size * 2 + 1)
.map(col -> cell(row, col, size)).collect(Collector.joining())))
最后是为每个位置选择字符的方法:
private String cell(int row, int col, int size) {
int offset = size - col;
if (offset == row)
return "0";
else if (offset > row)
return " ";
else if (row == size - 1)
return "0";
else
return row;
}
关于java - java中的数字金字塔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36414033/