杨辉三角(Python)

题目描述

杨辉三角

求杨辉三角的前n行数据。

输入格式:

输入n(n<10)值。

输出格式:

输出杨辉三角的前n行数据,每个数据占4列。

输入样例:
5
输出样例:
   1  
   1   1  
   1   2   1  
   1   3   3   1  
   1   4   6   4   1

解题思路

杨辉三角是一个经典的数学问题,可以通过递推的方式生成。每一行的首尾元素都是1,中间的元素等于上一行的相邻两个元素之和。

具体实现步骤如下:

  1. 定义一个函数 generate_pascal_triangle(n),用于生成杨辉三角的前n行数据。
  2. 初始化一个空列表 triangle,用于存储杨辉三角的每一行数据。
  3. 使用循环从第0行到第n-1行,依次生成每一行的数据。
  4. 对于每一行,初始化一个长度为i+1的列表 row,并将其所有元素初始化为1。
  5. 对于每一行的中间元素,从第2个元素到倒数第2个元素,使用递推关系 row[j] = triangle[i - 1][j - 1] + triangle[i - 1][j] 计算其值。
  6. 将每一行的数据添加到 triangle 中。
  7. 返回 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)))

你可能感兴趣的:(Python,python)