java:杨辉三角,输入n输出它的前n行

如题所述

以下是 Java 代码,用于生成杨辉三角并输出前 n 行:

```java
import java.util.Scanner;

public class YangHuiTriangle {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter the number of rows: ");
int numRows = scanner.nextInt();

for (int i = 0; i < numRows; i++) {
int num = 1;
System.out.printf("%" + (numRows - i) * 2 + "s", ""); // 控制输出格式
for (int j = 0; j <= i; j++) {
System.out.printf("%4d", num);
num = num * (i - j) / (j + 1); // 计算组合数
}
System.out.println();
}
}
}
```

在这个示例中,我们首先使用 `Scanner` 类读取用户输入的行数 `numRows`。然后,我们使用两个嵌套的循环来生成杨辉三角。外部循环控制行数,内部循环控制每一行的元素。

在内部循环中,我们使用了公式 `num = num * (i - j) / (j + 1)` 来计算杨辉三角中的组合数,并使用 `printf()` 方法以规定的格式输出结果。

最后,我们使用 `%n`(代表换行符)和 `printf()` 方法在控制台上输出前 n 行杨辉三角。

例如,在以上程序中输入 `6`,将会输出以下结果:

```
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
```
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-03
import java.util.Scanner;
public class HelloWorld {
public static void main(String args[]) {
Scanner input =new Scanner(System.in);
System.out.println("输入n");
int n=input.nextInt();
int[][] a = new int[n][n];
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) {
if (j < i) {
a[i][j] = 1;
if (j == 0) {
a[i][j] = 1;
} else {
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
} else {
a[i][j] = 1;
}
}
for (int i = 0; i < n; i++) {
for (int k = 1; k <= n - i; k++)
System.out.printf(" ");
for (int j = 0; j <= i; j++) {
System.out.printf("%3d ", a[i][j]);
}
System.out.printf("\n");
}
}
}本回答被提问者和网友采纳
第2个回答  2023-03-10
杨辉三角是一个经典的数学问题,在Java中实现起来非常简单。其基本思想就是利用递推公式计算每一行的系数,并将结果存储在一个二维数组中,最终输出结果。

具体实现步骤如下:

1.定义一个二维数组arr,用于存储杨辉三角的系数;
2.使用双重循环,从第一行开始逐行计算杨辉三角的系数,计算公式为: arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
3.利用循环,输出前n行的杨辉三角系数;

完整代码如下:

import java.util.Scanner;

public class PascalTriangle {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.println("请输入杨辉三角的行数:");
int n=input.nextInt();
int_
相似回答