鱼C论坛

 找回密码
 立即注册
查看: 1692|回复: 4

[已解决]关于函数递归的学习

[复制链接]
发表于 2021-4-14 23:02:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在学递归时,感觉自己把递归弄懂了,但一到做题时,却又不知改怎么下手了,特别时24课时的作业,看了答案能理解了,等第二天尝试自己做一遍的时候又回到不知道怎么下手的感觉。。。。


这是我对递归函数没有学透吧,有没有大神能对我指点下迷津,或是提供些关于递归函数的讲解等,或者更多的题目让我练练手。



我觉得我还能再抢救下~~~~~~~~~
最佳答案
2021-4-16 11:25:01
非凡 发表于 2021-4-16 10:23
这个阶乘的公式能懂,但是其它的公式怎么去找呢?有没有个什么思路?
好比小甲鱼在24课里出的题目
0.  ...

0 . 你要找到 10 进制和 2 进制的 换算关系公式就有了,蛮简单的
1 . 如果这个题目非要用递归也不是不行,不过就是相对来说繁琐了些,其实就是一直取最后一位,然后加入到列表。去最后一位我们一般用取余数  num%10 ,取除最后一位以外我们用地板除 num//10
2 . 回文联用递归不是就跟前两个一样么,尤其跟 1 取个位数,思路一模一样

剩下的就自己思考一下吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-15 08:38:43 | 显示全部楼层
本帖最后由 qq1151985918 于 2021-4-15 08:42 编辑

递归嘛,就是找公式,举个例子,比如说阶乘
5! = 5 * 4 * 3 * 2 * 1
公式是什么?
就是 x 的阶乘f(x) = x * f(x - 1)对不对
f(x - 1) = (x - 1) * f((x - 1) - 1)
那 x - 1 总得有个头啊,头就是 1! = 1
并且规定 0 ! = 1
规定负数没有阶乘
所以写成代码就应该是 :
def factorial(x):
    if x < 0 :
        return False
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x - 1)
    
print(factorial(5)) # 120
其他也是一样,递归 说白了 就是 公式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-16 10:23:02 | 显示全部楼层
qq1151985918 发表于 2021-4-15 08:38
递归嘛,就是找公式,举个例子,比如说阶乘
5! = 5 * 4 * 3 * 2 * 1
公式是什么?

这个阶乘的公式能懂,但是其它的公式怎么去找呢?有没有个什么思路?
好比小甲鱼在24课里出的题目
0. 使用递归编写一个十进制转换为二进制的函数(要求采用“取2取余”的方式,结果与调用bin()一样返回字符串形式)。
1. 写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。举例:get_digits(12345) ==> [1, 2, 3, 4, 5]
2. 还记得求回文字符串那道题吗?现在让你使用递归的方式来求解,亲还能骄傲的说我可以吗?
这三题的思路是怎么去想呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-16 11:25:01 | 显示全部楼层    本楼为最佳答案   
非凡 发表于 2021-4-16 10:23
这个阶乘的公式能懂,但是其它的公式怎么去找呢?有没有个什么思路?
好比小甲鱼在24课里出的题目
0.  ...

0 . 你要找到 10 进制和 2 进制的 换算关系公式就有了,蛮简单的
1 . 如果这个题目非要用递归也不是不行,不过就是相对来说繁琐了些,其实就是一直取最后一位,然后加入到列表。去最后一位我们一般用取余数  num%10 ,取除最后一位以外我们用地板除 num//10
2 . 回文联用递归不是就跟前两个一样么,尤其跟 1 取个位数,思路一模一样

剩下的就自己思考一下吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-17 16:09:41 | 显示全部楼层
qq1151985918 发表于 2021-4-16 11:25
0 . 你要找到 10 进制和 2 进制的 换算关系公式就有了,蛮简单的
1 . 如果这个题目非要用递归也不是不行 ...

谢谢,我自己在摸索摸索~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 02:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表