python学习 递归法实例 斐波那契数列及汉诺塔

斐波那契数列

1.迭代法
def fab(n):
n1=1
n2=1
n3=1
if n<1:
print(“输入有误!”)
return -1
while (n-2)>0:
n3=n1+n2
n1=n2
n-=1
return n3

temp=int(input(‘请输入一个正整数:’))
result=fab(temp)
if result!=-1:
print(‘该斐波那契数列的值为:’,result)

2.递归法
def fab(n):
if n < 1:
print(“输入有误!”)
return -1
if n1 or n2:
return 1
else:
return fab(n-1)+fab(n-2)
temp=int(input(‘请输入一个正整数:’))
result=fab(temp)
if result!=-1:
print(‘该斐波那契数列的值为:’,result)

汉诺塔

def hanoi(n,x,y,z):
if n ==1:
print(x,‘移动到’,z)
else:
hanoi(n-1,x,z,y)# 将前n-1个盘子从x移动到y上
print(x,‘移动到’,z)#将最底下的最后一个到z上
hanoi(n-1,y,x,z)#将y上的n-个盘子移动到z上

n=int(input(‘请输入汉诺塔层数:’))
hanoi(n,‘X’,‘Y’,‘Z’)

猜你喜欢

转载自blog.csdn.net/IWTK_wcl/article/details/82734577
今日推荐