gpt4 book ai didi

java - 帕斯卡三角形定位

转载 作者:太空宇宙 更新时间:2023-11-04 07:23:29 27 4
gpt4 key购买 nike

我编写了一个打印出帕斯卡三角形的 Java 程序,但是我不知道如何正确定位它。

方案1

public class Triangle {
public static void main() {
System.out.println("\nTriangle: ");
int row = 11;
long[][] triangle = new long[row][row];
triangle[1][1] = 1;
System.out.print(triangle[1][1] + "\n");

for (int i = 2; i < row; i++) {
for (int n = 1; n < row; n++) {
triangle[i][n] = triangle[i-1][n-1] + triangle[i-1][n];
if (triangle[i][n] > 0) {
System.out.print(triangle[i][n] + " ");
}
}
System.out.println();
}
}
}

输出:

1
1 1
1 2 1
1 3 3 1

方案2

public class Triangle {
public static void main() {
System.out.println("\nTriangle: ");
int row = 11;
long[][] triangle = new long[row][row];
int x = 1;
while (x < row - 1) {
System.out.print(" ");
x++;
}
triangle[1][1] = 1;
System.out.print(triangle[1][1] + "\n");

for (int i = 2; i < row; i++) {
x = i;
while (x < row - 1) {
System.out.print(" ");
x++;
}
for (int n = 1; n < row; n++) {
triangle[i][n] = triangle[i-1][n-1] + triangle[i-1][n];
if (triangle[i][n] > 0) {
System.out.print(triangle[i][n] + " ");
}
}
System.out.println();
}
}
}

输出:

     1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1 //(Notice this line is incorrectly positioned)

当三角形接近多位数字时,它开始破裂并使其变得丑陋。有人可以解释一下如何显示一个正常的三角形而不是这个丑陋的三角形吗?

最佳答案

动态帕斯卡三角生成器在这里:

import java.io.IOException;
import java.util.Scanner;

public class Main {
static double fact(int n) {
double result = 1;
for (double i = 1; i <= n; i++)
result *= i;
return result;
}

static double combine(int n, int r) {
return ((fact(n)) / (fact(n - r) * fact(r)));
}

static void pascalTriangle(int n) {
int n2 = n;
for (int i = 0; i < n; i++) {
for (int space = 8 * (n2 - 1); space >= 0; space--) {
System.out.printf(" ");
}
for (int j = 0; j <= i; j++) {
System.out.printf("%14.0f", combine(i, j));
System.out.printf(" ");
}
System.out.println();
n2--;
}
}

public static void main(String[] args)
throws IOException, InterruptedException {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);

System.out.print("Enter Number of Lines(n): ");
int n = sc.nextInt();
pascalTriangle(n);
System.out.println("Press any key to exit! ");
sc.nextByte();
}
}

关于java - 帕斯卡三角形定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18938928/

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