如题所述
以下是 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
```
```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");
}
}
}本回答被提问者和网友采纳
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_
具体实现步骤如下:
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_