#在一个函数内部可以调用其他函数,如果在一个函数内调用自己则称为递归调用 # def calc(n):#自然数的阶乘 # s=0 # if n==0 or n==1: # s=1 # else : # s=n*(calc(n-1)) # return s # print (calc(0)) # # def calc_power(x,n):#求x的n次方 # s=0 # if n==0: # s=1 # else: # s=x*(calc_power(x,n-1)) # return s # # print(calc_power(3,4)) # ####################### 汉 诺 塔 游 戏 ############################ # #汉诺塔三根杆子,一根上面有64个盘子,最大的在下面,其余一个比一个小 # #依次叠上去,借助第二根杆,将64个盘子移动到第三根杆上每次只搬一个圆 # # 盘,且大的不能放在小的上面 # def hannuota(x,a,b,c): # if x==1: # move(a,c) # else: # hannuota(x-1,a,c,b) # move(a,c) # hannuota(x-1,b,a,c) # # def move(x,y): # print(x+'-->'+y) # # print(hannuota(4,'A','B','C')) ''' 函数的递归调用效率并不高,其他编程语言可以通过尾调用的方式,解决递归调用效率低的问题。 但python中不支持尾调用。PS : 并没有搞懂为什么不支持 尾调用:在函数的运行最后一步进行调用,PS;函数运行最后一步不一定是函数最后一行 ''' def calc(n):#自然数的阶乘 s=0 if n==0 or n==1: return 1 else : return n*(calc(n-1)) # return s print (calc(4))