educoderpython答案计算机问题之递归第一关_Python练习题详解之递归(小白友好)...

Python练习题详解之递归(小白友好)

你好!欢迎来到Python练习题详解系列。为了让小白(也就是我本人)更好的理解代码,打好编程基础,我决定仔细地解说一些练习题。欢迎阅读!奥利给!

首先,我们来看看概念~

递归,从原理上来说就是函数调用自身的一个行为。你没听错,在函数内部,你可以调用所有可见的函数,当然包括自己。

举个栗子:我想写一个求阶乘的函数,也就是从1乘以2乘以3乘以4一直乘到所要求的数。例如所给的数是5,则阶乘式是1×2×3×4×5,得到的积是120,所以120就是5的阶乘。

还记得我们之前使用循环迭代的形式写过类似的代码吗~我们来回忆一下:

在这里, 如果输入5,我们的循环的result的运算过程就是 1 * 5 * 2 * 3 * 4 ,算出来120就是5的阶层。

那用递归的形式怎么写呢?先上答案:

在第六行,我们看到 x * factorial ( x - 1),也就是说,如果x = 5 ,那么factorial(5) 就等于 5 * factorial(4),而factorial(4)便是等于 3 * factorial(2)。以此类推,便是 5 * 4 * 3 * 2,直到 x == 1,他会return一个1给我们的式子。我做了一个图来解释这个过程:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值