递归:函数调用自身;有自身返回的条件,有归才是递归
#阶乘
def factorial(x):
result = number
for i in range(1,number):
result*=i
return result
number = int(input('输入一个整数:'))
result = factorial(number)
print(result)
递归:
def factorial(n):
if n==1:
return 1
else:
return n*factorial(n-1)
number = int(input('请输入一个整数:'))
result = factorial(number)
print(result)
斐波那契数列
递归实现
def fei(n):
if n <=2 :
return 1
else:
return fei(n-1)+fei(n-2)
n = int(input('请输入经历几个月:'))
result = fei(n)
print(result)
#迭代实现斐波那契数列
def fab(n):
n1 = 1
n2 = 1
n3 = 1
i = 1
if 0<n<3:
return 1
while i<n:
n3 = n1 + n2
n1 = n2
n2 = n3
i+=1
return n1
n = int(input('输入一个整数:'))
result = fab(n)
print(result)
我写的while循环要往前缩两个数
条件为<,> , i++
汉诺塔
递归
#递归的思想就是自己调用自己!!!
def hanoi(n,x,y,z):#形参
if n==1:
print(x,'→',z)
else:
hanoi(n-1,x,z,y) #将前n-1个盘子移动到y,
print(x,'→',z)
hanoi(n-1,y,x,z)#将y前n-1个盘子移动到z
n = int(input('输入汉诺塔的层数:'))
hanoi(n,'x','y','z')