-Java循环综合练习三之杨辉三角形
时间: 2025-06-24 15:35:40 浏览: 9
### Java 实现杨辉三角形的循环练习代码
以下是基于多种方法实现的 Java 杨辉三角形代码示例:
#### 方法一:使用一维数组存储当前行数据
此方法利用了一维数组来动态更新每行的数据。
```java
public class YangHuiTriangle {
public static void value(int n) {
int[] triggle = new int[n];
for (int i = 0; i < n; i++) {
triggle[i] = 1; // 设置末尾元素为1
for (int j = i - 1; j > 0; j--) {
triggle[j] = triggle[j - 1] + triggle[j]; // 更新中间元素
}
for (int j = 0; j <= i; j++) {
System.out.print(triggle[j] + " "); // 打印当前行
}
System.out.println();
}
}
public static void main(String[] args) {
System.out.println("请输入杨辉三角的行数");
java.util.Scanner scanner = new java.util.Scanner(System.in);
int n = scanner.nextInt();
value(n);
}
}
```
这种方法的核心在于每次迭代时,先设置新加入的元素为 `1`,再倒序更新内部元素值[^1]。
---
#### 方法二:使用二维数组构建完整的杨辉三角形
通过二维数组的方式可以直接模拟整个杨辉三角形结构。
```java
public class YangHuiTriangle2DArray {
public static void main(String[] args) {
int[][] triangle = new int[10][]; // 定义一个10行的杨辉三角形
for (int i = 0; i < triangle.length; i++) {
triangle[i] = new int[i + 1]; // 初始化每行长度
for (int j = 0; j <= i; j++) {
if (i == 0 || j == 0 || j == i) {
triangle[i][j] = 1; // 边界条件设为1
} else {
triangle[i][j] = triangle[i - 1][j] + triangle[i - 1][j - 1]; // 计算中间值
}
System.out.print(triangle[i][j] + "\t"); // 输出当前元素
}
System.out.println(); // 换行
}
}
}
```
这段代码展示了如何用嵌套的 `for` 循环填充并打印二维数组形式的杨辉三角形[^2]。
---
#### 方法三:优化后的组合公式法
采用数学上的组合公式 \( C_n^k \),即从 \( n \) 中选取 \( k \) 的方式计算每个位置的值。
```java
import java.util.Scanner;
public class YangHuiCombinationFormula {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
for (int i = 0; i < n; i++) {
int number = 1;
System.out.printf("%" + (n - i) * 2 + "s", ""); // 对齐输出
for (int j = 0; j <= i; j++) {
System.out.format("%4d", number); // 控制列宽
number = number * (i - j) / (j + 1); // 组合公式的递推关系
}
System.out.println();
}
}
}
```
这种算法避免了显式维护数组的空间开销,而是依赖简单的乘除运算完成数值生成[^4]。
---
#### 特殊性质说明
值得注意的是,如果将每一行视为一个整体数字,则这些数字恰好对应于 \( 11^{(n-1)} \)[^5]。然而,在超过第五行之后由于进位现象的存在,这一规律不再直观适用。
---
###
阅读全文
相关推荐


















