当前位置: 首页 > 面试题库 >

Pascal的三角二维数组-格式化打印输出

申博厚
2023-03-14
问题内容

我有一个小任务,我必须使用2d数组来产生Pascal的三角形。这是我的代码,它可以工作。如果我像这样显示三角形,就有一个额外的信用机会:

但是,我的空格不是这样格式化的。它只是简单地显示所有排列在左侧的数字。它很难描述,但是如果您运行它,您将明白我的意思。

这是我的代码:

import java.util.*;

public class Pascal { 
 public static final int ROW = 16;

 public static void main(String[] args) { 
      int[][] pascal  = new int[ROW +1][];
    pascal[1] = new int[1 + 2];
    pascal[1][1] = 1;
    for (int i = 2; i <= ROW; i++) {
        pascal[i] = new int[i + 2];
        for (int j = 1; j < pascal[i].length - 1; j++) {
            pascal[i][j] = pascal[i-1][j-1] + pascal[i-1][j];
            }
    }
    for (int i = 1; i <= ROW; i++) {
        for (int j = 1; j < pascal[i].length - 1; j++) {
            System.out.print(pascal[i][j] + " ");
        }
        System.out.println();
    }
}
}

如果有人可以帮助我找出如何在程序中添加正确的间距以产生图片中所需的输出,那将是很好的:)我知道我需要将系统打印出来“”,而我只是不知道在哪里。谢谢!


问题答案:

在这里,我修改了您的代码,它可以完美打印ROW大小,直到控制台窗口限制的13倍。

import java.util.*;

public class Pascal { 
    public static final int ROW = 12;
    private static int max = 0;

    public static void main(String[] args) { 
        int[][] pascal  = new int[ROW +1][];
        pascal[1] = new int[1 + 2];
        pascal[1][1] = 1;
        for (int i = 2; i <= ROW; i++) {
            pascal[i] = new int[i + 2];
            for (int j = 1; j < pascal[i].length - 1; j++) {
                pascal[i][j] = pascal[i-1][j-1] + pascal[i-1][j];
                String str = Integer.toString(pascal[i][j]);
                int len = str.length();
                if (len > max)
                    max = len;
            }
        }


        for (int i = 1; i <= ROW; i++) {                
            for (int k = ROW; k > i; k--)
                System.out.format("%-" + max + "s", " ");
            for (int j = 1; j < pascal[i].length - 1; j++)                      
                System.out.format("%-" + (max + max) + "s",  pascal[i][j]);
            System.out.println();
        }
    }
}

希望这可能会有所帮助。

问候



 类似资料:
  • 问题内容: 如何以矩阵框格式打印出简单的int [] [],就像我们在其中手写矩阵的格式那样。简单的循环运行显然无效。如果有帮助,我正在尝试在linux ssh终端中编译此代码。 问题答案: 产生:

  • 利用call函数控制数组的输出格式: #include <stdio.h> int matrix[10][10]; /* 格式化输出数组 */ void print(int matrix[][10], int m, int n) { int i, j; for (i = 0; i < m; ++i) { for (j = 0; j < n; ++j)

  • 标准输出 1.gossh远程执行命令返回格式. #批量模式首行首先打印所有的远程机器IP. [servers]=[192.168.56.2 192.168.56.2] #机器ip ip=xxx.xxx.56.2 #远程执行命令 command=uname #命令执行完后的退出值,就是$? return=0 #远程执行命令输出到标准输出和错误输出的结果 Linux ##换行和---分隔线 ---

  • 问题内容: 我对二维数组有问题。我有这样的显示: 我基本上想要显示为: 这是我的代码: 问题答案: 输出量 当然,您可以像其他答案中提到的那样交换7和5,以获得每行7。

  • 我需要以正确的二维数组格式打印此内容。哎呀,这是错误的。需要从方法打印。我的输出似乎是一个无限循环。

  • 问题内容: 作为Python的学习经验,我正在尝试编写自己的Pascal三角形版本。我花了几个小时(因为我刚刚开始),但是我得到了以下代码: 哪个返回 但是,我不知道从这里去哪里。几个小时我一直在撞墙。我想强调,我不希望你为我做这件事;朝正确的方向推动我。作为清单,我的代码返回 谢谢。 编辑:我采取了一些好的建议,并且我完全重写了我的代码,但是现在我遇到了另一个问题。这是我的代码。 但是,我发现输