|
发表于 2023-8-2 11:18:32
|
显示全部楼层
我稍微修改一下二维列表打印的部分。为了使每一行的缩进看起来整齐,我们需要注意在打印每个数字之前添加足够的空格(或制表符)。下面是修改后的代码片段:
- s = int(input("请输入杨辉三角的阶数:"))
- print(s, "阶杨辉三角如下:")
- #创建一个s*s的二维列表,并将所有的元素初始化为0
- triangle = []
- for i in range(s):
- triangle.append([])
- for j in range(s):
- triangle[i].append(0)
- #计算杨辉三角
- #根据观察可以发现,杨辉三角左右两边的元素均为1
- for i in range(s):
- triangle[i][0] = 1
- triangle[i][i] = 1
- #第i行j列的值 = 第(i-1)行(j-1)列的值 + 第(i-1)行(j)列的值
- for i in range(2, s):
- for j in range(1, i):
- triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]
- #输出杨辉三角
- for i in range(s):
- for k in range(s - i):
- print(' ', end='')
- for j in range(i + 1):
- if i % 2 == 1:
- print(' ', end='')
- print(triangle[i][j], end=' ')
- print()
复制代码
这段代码首先产生一个全为0的2D列表。然后,将每一行的第一个和最后一个元素设为1。随后,剩余的每个元素都被设置为其左上角和上方的元素之和。此外,为了在行与行之间保持对齐,每一行的开始部分都打印了相应数量的空格。
楼主给个最佳答案呗 |
|