打印帕斯卡三角形的 Java 程序
瀏覽人數:416最近更新:
一、概述
帕斯卡三角形是三角形形式的二項式係數排列。帕斯卡三角形的數字是這樣排列的,每個數字都是它上面兩個數字的總和。
在本教程中,我們將了解如何在 Java 中打印 Pascal 三角形。
2.使用遞歸
我們可以使用公式nCr
: n 的遞歸打印帕斯卡三角形! / ( ( n – r ) !r ! )
首先,讓我們創建一個遞歸函數:
public int factorial(int i) {
if (i == 0) {
return 1;
}
return i * factorial(i - 1);
}
然後我們可以使用該函數打印三角形:
private void printUseRecursion(int n) {
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= n - i; j++) {
System.out.print(" ");
}
for (int k = 0; k <= i; k++) {
System.out.print(" " + factorial(i) / (factorial(i - k) * factorial(k)));
}
System.out.println();
}
}
n = 5 的結果如下所示:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
3.避免使用遞歸
不用遞歸打印帕斯卡三角形的另一種方法是使用二項式展開。
我們總是在每行的開頭設置值 1,那麼第 (n) 行和 (i) 位置的 k 值將計算為:
k = ( k * (n - i) / i )
讓我們使用這個公式創建我們的函數:
public void printUseBinomialExpansion(int n) {
for (int line = 1; line <= n; line++) {
for (int j = 0; j <= n - line; j++) {
System.out.print(" ");
}
int k = 1;
for (int i = 1; i <= line; i++) {
System.out.print(k + " ");
k = k * (line - i) / i;
}
System.out.println();
}
}
4。結論
在本快速教程中,我們學習了兩種在 Java 中打印 Pascal 三角形的方法。
可以 在 GitHub 上找到本文中的示例代碼。
本作品係原創或者翻譯,採用《署名-非商業性使用-禁止演繹4.0國際》許可協議