gpt4 book ai didi

java - 如何在Java中的for循环中打印二维数组

转载 作者:行者123 更新时间:2023-12-01 13:42:25 25 4
gpt4 key购买 nike

我正在尝试在java中绘制帕斯卡三角形

这是我的代码

static void printPascalTriangle(int length){               
int[][] pascal=new int[length][length];

for (int i = 0; i < length; i++) {
pascal[0][i]=1;
pascal[i][0]=1;
} // here length is the dimension of pascal triangle , first loop is for filling up the first row and column with zero

for (int row = 1; row < length; row++) {
for (int column = 1; column < length-row; column++) {
pascal[row][column]=pascal[row][column-1]+pascal[row-1][column];
}

} // this loop is for filling up the rest of position

for (int row = 0; row < length; row++) {
for (int column = 0; column < length-row; column++) {
pr(pascal[row][column]+"\t");
}
prln("\n");

} // this loop is for printing the array



}


static void prln(Object anyObject){
System.out.println(anyObject);
}

static void pr(Object anyObject){
System.out.print(anyObject);
}

我在这里使用了三个循环,如何通过使用单个循环或至少两个循环来解决这个问题,我不想使用不同的循环来打印数组。

最佳答案

使用this formula我们得到算法:

// for each row 
for (int row = 0; row < length; row++) {
// the value of the previous column in this row
// it doesn't really matter what we initialize this to
// since we never use the initial value anyway
int previous = 1;

// for each column in this row
// row 0 has 1 column and each subsequent row has one more
for (int column = 0; column <= row; column++) {
// the value of the current column in the row
// the default value is 1, since that is always the value
// of the first column in every row
int current = 1;

// if the current column isn't the first, use formula
// from the wikipedia article to compute the current column
if (column != 0) {

// we cast 'column' to a double so that the decimal does not get
// truncated during division
current = (int) (previous * ((row + 1 - column) / (double) column));
}

// print out the current column followed by a space
System.out.print(current + " ");

// set the value of the previous column to the current column value
// this will be used in the next iteration of this for loop
previous = current;
}

// print a new line to start a new row
System.out.println();
}

关于java - 如何在Java中的for循环中打印二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20615521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com