我需要编写一个Java代码,打印出帕斯卡三角形。以下是我到现在为止所做的。
import java.util.Scanner;
class Pascal {
static int bnk (int n, int k) {
if (k==0 || k==n) {
return 1;
} // B(n,k) Berechnung für Standardwert = 1;
else {
int x = (bnk(n-1, k-1) + bnk(n-1, k));
return x;
} // Berechnung aller sonstigen B(n,k)-Werte.
} // Berechnung von B(n,k)
public static void main (String [] args) {
Scanner sc = new Scanner(System.in);
System.out.println("How many rows?: ");
int r = sc.nextInt();
sc.close();
for (int n=0; n<r; n++) {
for (int j=0; j<(r-n); j++) {
System.out.print(" ");
} // Setzt Anzahl Leerzeichen vor erster Zahl
for (int k=0; k<=n; k++) {
int b = bnk(n,k);
System.out.print(b+" ");
} // Berechnet in jeder Reihe alle Elemente
System.out.println();
} // Berechnet Reihe nach Reihe
} // main
} // class Pascal
第一种方法计算三角形中所需的值。 第二种方法通过打印(r-n)个空格逐行打印三角形。其中n代表当前行数,r代表总行数。 因此,三角形的左侧以正确的方式被打印出来,但问题是,当三角形中的值变得太高时,右侧的三角形会变形。 我希望我所描述的内容是可以理解的。你能帮我找到一种正确格式化三角形的方法吗?
当前输出如下: 5行:https://gyazo.com/d9a536d3ac92c155707ebb2e4ee7745b