1.实现一个函数,使用ragged array输出给定n的杨辉三角。 2.实现一个Triangle类。声明一个包含5个三角形的数组并初始化它 使用冒泡排序分别按面积和周长对三角形数组进行排序。 通过读取文件初始化数组。
时间: 2024-03-02 15:52:27 浏览: 112
好的,我来回答你的问题。
1. 实现一个函数,使用ragged array输出给定n的杨辉三角。
以下是使用 Python 实现的函数:
```python
def generate_pascal_triangle(n):
triangle = [[1]]
for i in range(1, n):
row = [1]
for j in range(1, i):
row.append(triangle[i-1][j-1] + triangle[i-1][j])
row.append(1)
triangle.append(row)
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 个三角形的数组并初始化它。使用冒泡排序分别按面积和周长对三角形数组进行排序。通过读取文件初始化数组。
以下是使用 Python 实现的 Triangle 类:
```python
import math
class Triangle:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def area(self):
s = (self.a + self.b + self.c) / 2
return math.sqrt(s * (s - self.a) * (s - self.b) * (s - self.c))
def perimeter(self):
return self.a + self.b + self.c
```
这个 Triangle 类有三个属性:三角形的三边长 a、b、c。它还有两个方法:area 方法用于计算三角形的面积,perimeter 方法用于计算三角形的周长。
接下来,我们可以使用这个 Triangle 类来初始化一个包含 5 个三角形的数组,并且使用冒泡排序分别按面积和周长对三角形数组进行排序。代码如下:
```python
triangles = [
Triangle(3, 4, 5),
Triangle(4, 4, 4),
Triangle(1, 2, 3),
Triangle(5, 12, 13),
Triangle(7, 8, 9)
]
# 按面积排序
for i in range(len(triangles)):
for j in range(len(triangles) - i - 1):
if triangles[j].area() > triangles[j+1].area():
triangles[j], triangles[j+1] = triangles[j+1], triangles[j]
print("按面积排序:")
for triangle in triangles:
print(triangle.area())
# 按周长排序
for i in range(len(triangles)):
for j in range(len(triangles) - i - 1):
if triangles[j].perimeter() > triangles[j+1].perimeter():
triangles[j], triangles[j+1] = triangles[j+1], triangles[j]
print("按周长排序:")
for triangle in triangles:
print(triangle.perimeter())
```
最后,如果需要通过读取文件来初始化数组,可以使用 Python 的文件读取功能。代码如下:
```python
triangles = []
with open("triangles.txt", "r") as file:
for line in file:
a, b, c = map(int, line.split())
triangles.append(Triangle(a, b, c))
```
阅读全文