本人递归学习的不牢固,因此找了一些与递归相关的编程题做练习,巩固加深印象。
题目:
输入n值,使用递归函数,求杨辉三角形中各个位置上的值,按照如下形式打印输出图形。例如:当n=6时。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
解题思路:
首先观察规律:
1.每一行的行首和行尾都为1;
2.每行数字的个数与行首相同;
3.第n行的第m个数是由第n-1行中第m-1和m数之和。
代码如下:
def yang(i,j): #i为行,j为列
if j==0 or j==i:
return 1
else:
return yang(i-1,j)+yang(i-1,j-1)
for i in range(0,7):
print()
for n in range(0,7-i):
print(" ",end="")#控制每一行前面的空格
for j in range(0,i+1):
print(yang(i,j),"",end="")
运行结果图: