杨辉三角(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)))

相关推荐

  1. 三角Python

    2023-12-13 17:24:02       60 阅读
  2. 三角

    2023-12-13 17:24:02       59 阅读
  3. leetcode-三角

    2023-12-13 17:24:02       65 阅读
  4. 三角型打印

    2023-12-13 17:24:02       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-13 17:24:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-13 17:24:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-13 17:24:02       82 阅读
  4. Python语言-面向对象

    2023-12-13 17:24:02       91 阅读

热门阅读

  1. 前端优化 ----防抖 节流

    2023-12-13 17:24:02       60 阅读
  2. Vue mixins详解

    2023-12-13 17:24:02       52 阅读
  3. 索引的使用

    2023-12-13 17:24:02       45 阅读
  4. Modbus RTU和Modbus TCP的区别 深入篇

    2023-12-13 17:24:02       59 阅读
  5. vue3中Element Plus全局组件配置中文的两种方案

    2023-12-13 17:24:02       63 阅读
  6. Temporal 服务限制说明

    2023-12-13 17:24:02       63 阅读