java - java中的数字金字塔

标签 java numbers

我是 Java 编程的初学者,我想打印一个如图所示的金字塔:

enter image description here

我已经有了金字塔(没有数字) (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/

相关文章:

java - ForkJoinTask : Order of join()-ing

java - 在 play1.2.4 应用程序中使用 ssl

javascript - 如何禁用字母和特殊字符的粘贴选项但为数字启用

C 中的复杂数据类型给算法带来麻烦

java - 如果将 Java Long 转换为另一个基数,如何从转换后的 String 取回它?

java - 在一个类中获取 ClassNotFoundException : oracle. jdbc.driver.OracleDriver 但不在另一类中获取

java - 使用随机访问文件删除记录

JAVASCRIPT:获取数组内的值

algorithm - 如何将 float 转换为人类可读的分数?

java - ArrayList 检索第一个和最后一个结果而不对 ArrayList 进行排序