我會嘗試使用遞歸方法將pascals三角形打印到標準輸出。我開始通過一種迭代方法來了解我如何使該方法起作用。請參閱下面的代碼。Java:更多的遞歸方法
/**
* Print Pascal's triangle with PrintOut.
*
* @param n The amount of rows in total
*/
public static void printPascal (int n) {
for (int i = 0; i <n; i ++) {
System.out.format ("%" + (n-i) * 3 + "s", "");
for (int j = 0; j <= i; j ++) {
System.out.format ("% 6d", binom (i, j));
}
System.out.println();
}
}
Javadoc和binom
/**
* Method which calculates the values in Pascal's triangle.
* @param n The row of "the place"
* @param k The column of "the place"
* @return A value on "the place" from the triangle
*/
public static int binom (int n, int k)
的簽名然後我開始對遞歸方法工作。我無法使用任何類變量進行打印 - 所以我無法使用矢量。我不能有任何對象,方法所在的類,這兩種方法和main是我可以實現的唯一方法。 最大的問題是我無法保存binom應該使用的變量,因爲它們在每次迭代後重置。 現在我有這個代碼printPascal:
if (n < 0) {
return;
}
printPascal (n-1);
for (int k = 0; k <= n; k++) {
System.out.format ("%6d", binom(n, k));
}
System.out.println();
有沒有一種方法,使上面的方法更遞歸 - 有沒有辦法帶走for循環? 在圖中,您可以看到輸出是如何使用迭代方法的。 Output
請總是使用花括號與if和for。將函數調用移動到新行。上次發佈的代碼很難分析。 –
謝謝@AdrianAdamczyk我是新來的。 :) –