杨辉三角(Python)
2023-12-13 16:49:55
题目描述
杨辉三角
求杨辉三角的前n行数据。
输入格式:
输入n(n<10)值。
输出格式:
输出杨辉三角的前n行数据,每个数据占4列。
输入样例:
5
输出样例:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
解题思路
杨辉三角是一个经典的数学问题,可以通过递推的方式生成。每一行的首尾元素都是1,中间的元素等于上一行的相邻两个元素之和。
具体实现步骤如下:
- 定义一个函数
generate_pascal_triangle(n)
,用于生成杨辉三角的前n行数据。 - 初始化一个空列表
triangle
,用于存储杨辉三角的每一行数据。 - 使用循环从第0行到第n-1行,依次生成每一行的数据。
- 对于每一行,初始化一个长度为i+1的列表
row
,并将其所有元素初始化为1。 - 对于每一行的中间元素,从第2个元素到倒数第2个元素,使用递推关系
row[j] = triangle[i - 1][j - 1] + triangle[i - 1][j]
计算其值。 - 将每一行的数据添加到
triangle
中。 - 返回
triangle
。
然后,通过输入函数获取n的值。
接下来,调用 generate_pascal_triangle(n)
函数生成杨辉三角的数据,并使用格式化输出将其打印出来。每个数据占4列,前面有3个空格。
Python代码实现
# 生成杨辉三角
def generate_pascal_triangle(n):
triangle = []
for i in range(n):
row = [1] * (i + 1)
for j in range(1, i):
row[j] = triangle[i - 1][j - 1] + triangle[i - 1][j]
triangle.append(row)
return triangle
# 输入
n = int(input())
# 输出格式化
for row in generate_pascal_triangle(n):
# 输出每个数据占4列,前面有3个空格
print(" ", " ".join(map(str, row)))
文章来源:https://blog.csdn.net/Daemonic_/article/details/134702201
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!