【发布时间】:2015-09-17 05:32:01
【问题描述】:
我正在尝试使用 2D int 数组打印帕斯卡的三角形
并以下面的方式打印二维数组
public static void pascal (int n)
{
int[][] pascalArray = new int[n][n];
// Code here
}
printArray(pascalArray);
public static void printArray(int[][] array)
{
for (int i = 0; i < array.length; i++)
{
for(int j=0; j<array[i].length;j++)
{
System.out.print(array[i][j] + " ");
}
System.out.println();
}
对于 n =4
我的输出低于输出
Enter rows in the Pascal's triangle (or 0 to quit): 4
1 0 0 0
1 1 0 0
1 2 1 0
1 3 3 1
现在我想要空白而不是零或等腰三角形格式的漂亮打印
在二维 int 数组中是否可行 或者我们可以在 printArray 方法中将 2D int 数组更改为某个字符串数组并实现相同的效果吗?
我尝试了 system.out.format,但由于 int 2D 数组,我无法获得输出
【问题讨论】:
-
你可以在你的循环中检查它是否为零,如果是,打印一个空格而不是一个 0。
-
@EvanLaHurd 我试过 if (array[i][j]==0) array[i][j]= ' ';但是数组是 int 2D 并且它无法分配空白,我也尝试了 unicode 但仍然没有显示我想要的方式。
-
不要把空间分配给
array[i][j],直接用System.out.print(" "); -
感谢您的输入 .. 但是我是如何获得 java.lang.ArrayIndexOutOfBoundsException 的!
-
那么你做错了什么......如果你只是添加一个检查 0 并打印一个空格而不是 0,那么如果它已经不是,那么它不应该这样做。无论哪种方式,安迪的答案都是您最好的选择!
标签: java arrays multidimensional-array pascals-triangle