算法题 python输出杨辉三角某一行

#def getYh():
         #第m行定义为输入整型
         m = int(input('please input a digital'))-1
         n = 0
         b = [1]
         while n<m:
                b = [1] + [b[i]+b[i+1] for i in range(len(b)-1)]+[1]
                n+=1
         return b
         
         

以下是关于算法设计与分析杨辉三角的多种解法: 1. 使用列表存储每一行的值,利用上一行的值计算当前行的值,然后将每一行的列表打印出来。 ```python def generate_pascals_triangle(numRows): triangle = [] for row_num in range(numRows): row = [None for _ in range(row_num + 1)] row[0], row[-1] = 1, 1 for j in range(1, len(row) - 1): row[j] = triangle[row_num - 1][j - 1] + triangle[row_num - 1][j] triangle.append(row) return triangle def print_pascals_triangle(triangle): for row in triangle: print(row) numRows = 5 triangle = generate_pascals_triangle(numRows) print_pascals_triangle(triangle) ``` 2. 使用生成器函数生成每一行的值,然后打印出整个杨辉三角。 ```python def generate_pascals_triangle(numRows): result = [] for i in range(numRows): row = [1] * (i + 1) for j in range(1, i): row[j] = result[i - 1][j - 1] + result[i - 1][j] result.append(row) return result def print_pascals_triangle(triangle): for row in triangle: print(row) numRows = 5 triangle = generate_pascals_triangle(numRows) print_pascals_triangle(triangle) ``` 3. 使用递归函数计算每一行的值,然后打印出整个杨辉三角。 ```python def generate_pascals_triangle(numRows): if numRows == 0: return [] elif numRows == 1: return [[1]] else: result = generate_pascals_triangle(numRows - 1) last_row = result[-1] new_row = [1] + [last_row[i] + last_row[i + 1] for i in range(len(last_row) - 1)] + [1] result.append(new_row) return result def print_pascals_triangle(triangle): for row in triangle: print(row) numRows = 5 triangle = generate_pascals_triangle(numRows) print_pascals_triangle(triangle) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值