用Java来重新回答我的要求
时间: 2024-03-02 09:52:32 浏览: 25
好的,下面给出Java实现的代码。
1. 实现一个函数,使用ragged array输出给定n的杨辉三角。
```java
public static int[][] generatePascalTriangle(int n) {
int[][] triangle = new int[n][];
triangle[0] = new int[]{1};
for (int i = 1; i < n; i++) {
triangle[i] = new int[i+1];
triangle[i][0] = 1;
for (int j = 1; j < i; j++) {
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];
}
triangle[i][i] = 1;
}
return triangle;
}
```
这个函数接受一个整数 n 作为输入,然后使用 ragged array(不规则数组)生成给定 n 的杨辉三角。例如,当 n=5 时,输出如下:
```
[
[1],
[1, 1],
[1, 2, 1],
[1, 3, 3, 1],
[1, 4, 6, 4, 1]
]
```
2. 实现一个 Triangle 类。声明一个包含 5 个三角形的数组并初始化它。使用冒泡排序分别按面积和周长对三角形数组进行排序。通过读取文件初始化数组。
```java
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Triangle {
private double a;
private double b;
private double c;
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
public double getArea() {
double s = (a + b + c) / 2;
return Math.sqrt(s * (s - a) * (s - b) * (s - c));
}
public double getPerimeter() {
return a + b + c;
}
public static void main(String[] args) {
Triangle[] triangles = new Triangle[5];
triangles[0] = new Triangle(3, 4, 5);
triangles[1] = new Triangle(4, 4, 4);
triangles[2] = new Triangle(1, 2, 3);
triangles[3] = new Triangle(5, 12, 13);
triangles[4] = new Triangle(7, 8, 9);
// 按面积排序
for (int i = 0; i < triangles.length; i++) {
for (int j = 0; j < triangles.length - i - 1; j++) {
if (triangles[j].getArea() > triangles[j+1].getArea()) {
Triangle temp = triangles[j];
triangles[j] = triangles[j+1];
triangles[j+1] = temp;
}
}
}
System.out.println("按面积排序:");
for (Triangle triangle : triangles) {
System.out.println(triangle.getArea());
}
// 按周长排序
for (int i = 0; i < triangles.length; i++) {
for (int j = 0; j < triangles.length - i - 1; j++) {
if (triangles[j].getPerimeter() > triangles[j+1].getPerimeter()) {
Triangle temp = triangles[j];
triangles[j] = triangles[j+1];
triangles[j+1] = temp;
}
}
}
System.out.println("按周长排序:");
for (Triangle triangle : triangles) {
System.out.println(triangle.getPerimeter());
}
// 通过读取文件初始化数组
Triangle[] trianglesFromFile = new Triangle[5];
try {
File file = new File("triangles.txt");
Scanner scanner = new Scanner(file);
for (int i = 0; i < 5; i++) {
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double c = scanner.nextDouble();
trianglesFromFile[i] = new Triangle(a, b, c);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
```
这个Triangle类有三个属性:三角形的三边长 a、b、c。它还有两个方法:getArea方法用于计算三角形的面积,getPerimeter方法用于计算三角形的周长。
接下来,我们可以使用这个Triangle类来初始化一个包含5个三角形的数组,并且使用冒泡排序分别按面积和周长对三角形数组进行排序。代码中还包括了从文件中读取三角形数据并初始化数组的功能。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)