经典的递归问题:针对递归问题,不要深究!分析问题,找到规律,主要是三个条件:
*递归条件
*递归体
*递归出口
1.求N!
def jiechen(n):
if n==1 : #递归条件
return 1 #递归出口
else:
return n*jiechen(n-1) #递归体
value=int(input("请输入一个整数:"))
result=jiechen(value)
print("%d的阶乘是%d"%(value,result))
2.递归实现斐波那契数列的前n项的和
def fab(n):
if n<1: #递归条件
return "NO"
else:
if n==1 or n==2: #递归条件
return 1 #递归出口
else:
return fab(n-1)+fab(n-2) #底柜体
value=int(input("请输入一个整数:"))
result=fab(value)
print(result)
3.汉诺塔问题
def hanoi(n,x,y,z): #n层汉诺塔,x,y,z三个柱子
if n==1:
print(x,"-->",z) #如果只有一层,直接把x上的盘子移动到z上
else:
hanoi(n-1,x,z,y) #把n-1个盘子移动到y上
print(x,"-->",z) #把剩余的一个移动到z上
hanoi(n-1,y,x,z) #把y上的n-1个移动到z上
level=int(input("请输入汉诺塔的层数:"))
hanoi(level,"X","Y","Z")
函数的补充:
for index,content in enumerate(可迭代对象):
print(index,content)
注意:content就是可迭代对象里面的元素