Python程序:输入用户给定的n行数以打印Pascal三角形
Pascal三角形是一个很有意思的数学现象,它由一系列数字组成,可以通过递归算法来构建。在这篇文章中,我们将通过Python程序输入用户给定的n行数来打印Pascal三角形,帮助大家更好地理解Pascal三角形的构建过程。
Pascal三角形简介
Pascal三角形是由数学家 Blaise Pascal 发现的,这个三角形的特点是:第 n 行有 n 个数字,每行最左边和最右边的数字都是 1,其它数字都是上一行相邻两个数字之和。例如,前 6 行的Pascal三角如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
代码实现
首先,我们需要用户输入Pascal三角形的行数 n。代码如下:
n = int(input("请输入Pascal三角形的行数:"))
接下来,我们用一个列表来存储Pascal三角形的每一行的数字,这个列表的初始值为 [1]
。然后通过一个循环,依次计算每行的数字,并将计算好的一行数字添加到列表里。代码如下:
pascal_triangle = [[1]]
for i in range(1, n):
current_row = [1]
for j in range(1, i):
current_row.append(pascal_triangle[i-1][j-1] + pascal_triangle[i-1][j])
current_row.append(1)
pascal_triangle.append(current_row)
在上面的代码中,pascal_triangle
表示存储Pascal三角形的列表。第1行的数字是 [1]
,所以我们先把 [1]
添加到 pascal_triangle
中。
接下来,通过一个循环,依次计算每行的数字。首先,我们在 current_row
中添加第一个数字 1。然后,对于第 i 行的第 j 个数字(1<j<i),它等于上一行的第 j-1 个数字和第 j 个数字之和。所以,我们可以使用 pascal_triangle[i-1][j-1] + pascal_triangle[i-1][j]
来计算第 i 行的第 j 个数字,并在 current_row
中添加这个数字。最后,我们在 current_row
中添加最后一个数字 1,并把 current_row
添加到 pascal_triangle
中。
最后,我们可以使用一个循环来输出Pascal三角形。代码如下:
for row in pascal_triangle:
print(' '.join([str(n) for n in row]).center(n*2))
在上面的代码中,我们用一个循环遍历每一行的数字,并将每一行的数字拼接成一个字符串,用空格分隔。然后使用 center(n*2)
来把字符串居中对齐,其中 n*2
表示每个数字都占用 2 个字符的宽度。最后,我们把每一行的字符串通过换行符输出。
完整代码
下面是完整的程序代码:
n = int(input("请输入Pascal三角形的行数:"))
pascal_triangle = [[1]]
for i in range(1, n):
current_row = [1]
for j in range(1, i):
current_row.append(pascal_triangle[i-1][j-1] + pascal_triangle[i-1][j])
current_row.append(1)
pascal_triangle.append(current_row)
for row in pascal_triangle:
print(' '.join([str(n) for n in row]).center(n*2))
结论
通过这篇文章,我们学习了如何用Python程序输入用户给定的n行数,并打印出对应的Pascal三角形。通过这个例子,我们也进一步认识到了Python程序的代码语法和逻辑。希望本文对你有所帮助,能够启发你在其他问题的解决中提供有用的参考。