码迷,mamicode.com
首页 > 编程语言 > 详细

python基础之函数的递归调用

时间:2020-06-13 18:56:55      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:递归   return   语言   nbsp   函数   基础   运行   cal   div   

#在一个函数内部可以调用其他函数,如果在一个函数内调用自己则称为递归调用
# 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))

 

python基础之函数的递归调用

标签:递归   return   语言   nbsp   函数   基础   运行   cal   div   

原文地址:https://www.cnblogs.com/zatusnemiku/p/13121143.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!