鱼C论坛

 找回密码
 立即注册
查看: 2772|回复: 7

递归好难呀。

[复制链接]
发表于 2017-7-2 21:43:00 | 显示全部楼层 |阅读模式

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

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

x


虽然能看懂递归的代码,也知道原理,但是自己做题目就写不出代码了。。。。。。。。。。


如果我只是想做一个普通程序员,,,,这部分能不能先放一放以后再研究呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-7-2 21:48:26 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-2 21:54:35 | 显示全部楼层
本帖最后由 yongxi 于 2017-7-2 21:58 编辑

不难的。  逆向思维很关键。

你要学会自己在脑子里面想象

假设有一个停止条件,你不需要知道过程的每一步,只需要明白递归的最后一层停止之后应该怎么返回就行了

很多问题可以用递归快速简单的解决,很多问题用递归反而解决不了问题

欧拉计划里面很多数学问题用递归只会让你电脑宕机。

仁者见仁智者见智。看具体情况来选择

不过,递归是一个很好的解决问题的方法。建议楼主深入学习下。

光看是不够的,抽象思维的东西,首先弄明白原理,其次在脑子里想象过程与结果。加油吧,其实不难的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-2 22:12:34 | 显示全部楼层
小甲鱼视频说得很清楚了,就2个条件:
  1:函数调用自身
2:在合适得条件下退出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-3 11:17:11 | 显示全部楼层
其实关键是问题要抽象的出来,能抽象出来就很简单啦
我自己的理解就是将一个复杂的问题,简化为一个个相同的简单问题
举个例子:
x    = 1 + (x-1)
x-1 = 1 + (x-2)
x-2 = 1 + (x-3)
......................
一直到最后还剩1,递归终止...

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-3 13:20:25 | 显示全部楼层
看过火影么 血轮眼的那几个终极幻术搞懂了 就懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-3 15:07:30 | 显示全部楼层
我理解递归就是函数不断调用自己,在从初始值往回计算得到结果。。

举个例子:斐波那契数列

用递归写;

def feb(n):
     if n < 1:
          return -1
     elif  n = 1 or n == 2:
          reruen 1
     else:
          return feb(n-1) + feb(n-2)
#  当n=5
    计算步骤可以写成:
               1       feb(4) + feb (3)
               2       feb(3) + feb (2)
               3       feb(2) + feb (1)
              feb(1)=1  feb(2)=1  feb(3)=1+1=2  feb(4)=1+2=3 feb(5)=5  得到结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-11 21:37:54 | 显示全部楼层
普通程序员的话,大概可以把。。。不过建议你还是去学算法,不然迟早被淘汰。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-22 03:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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