java杨辉三角形居中并写入文件
时间: 2024-09-12 08:03:52 浏览: 63
在Java中,杨辉三角形是一个经典的组合数学问题,它是一种二维数组的形式,每一行的每个数字都是前一行两个对应数字之和。要将杨辉三角形居中并写入文件,你可以按照以下步骤操作:
1. 定义一个函数来生成杨辉三角形。首先,确定要生成的层数(即最大行数),然后创建一个二维数组来存储结果。
```java
public static int[][] generatePascalTriangle(int n) {
int[][] triangle = new int[n][n];
for (int i = 0; i < n; i++) {
triangle[i][0] = 1;
triangle[0][i] = 1;
}
for (int row = 2; row < n; row++) {
for (int col = 1; col < row; col++) {
triangle[row][col] = triangle[row - 1][col - 1] + triangle[row - 1][col];
}
}
return triangle;
}
```
2. 将生成的三角形居中。由于杨辉三角形是对称的,我们可以只保存一半到一个新数组,另一半可以通过镜像对称得到。
```java
public static int[][] centerTriangle(int[][] triangle, int n) {
int mid = n / 2;
int[] centered = new int[mid * 2 + 1];
for (int i = 0; i < mid; i++) {
centered[2 * i] = triangle[i][mid];
centered[2 * i + 1] = triangle[i][mid - 1];
}
return centered;
}
```
3. 将居中后的三角形写入文件。可以使用`BufferedWriter`类将内容写入文本文件。
```java
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public static void writeToFile(int[] triangle, String fileName) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter(fileName))) {
for (int num : triangle) {
writer.write(num + " ");
}
writer.newLine();
} catch (IOException e) {
System.err.println("Error writing to file: " + e.getMessage());
}
}
```
4. 组合所有步骤,并运行程序。调用上述函数并传递所需的层数和文件名作为参数。
```java
public static void main(String[] args) {
int numRows = 5; // 根据需求调整层数
int[][] originalTriangle = generatePascalTriangle(numRows);
int[] centeredTriangle = centerTriangle(originalTriangle, numRows);
String filename = "yuanhui_triangle.txt";
writeToFile(centeredTriangle, filename);
}
```
阅读全文