为了账号安全,请及时绑定邮箱和手机立即绑定

谁能给我讲一下这个递归函数的计算过程是怎样的,实在好难理解!!!

递归函数原理。。。。

正在回答

2 回答

递归就是在函数内部调用函数本身, 

def fact(n):
    if n==1:
        return 1
    return n * fact(n - 1)

函数fact(n) 在内部调用fact(n - 1), 而调用fact(n - 1)时又会调用fact(n - 2). 

#每次调用都把参数n替换为n - 1(有点类似数学里的整体代换)

当n减到等于1时不再调用本身, 这个就是递归函数的出口, 一直到这时候, 递归函数才开始计算数值

1 * 2 * 3 * 4 * ......* (n - 1) * n

也就是n!

1 回复 有任何疑惑可以回复我~
a=4;
def jiecheng(n):
    if n==2:
        return 2
    return n*jiecheng(n-1)
print jiecheng(a)

# 拿这个阶乘函数为例,当a=4递归的过程是:
# 4*jiecheng(3)
# 4*(3*jiecheng(2))
# 当n=2时
# jiecheng(2)返回2
#表达式变为4*(3*2)=4*6=24
# 递归函数在没遇到return 常数之前是没有实际的计算乘积的


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

谁能给我讲一下这个递归函数的计算过程是怎样的,实在好难理解!!!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信