摘要: 记住经典的斐波拉契递归和阶乘递归转换为while规律.它为实现更复杂转换提供了启发性思路.# 斐波拉契--树形递归def fab(n): if n<3: return n return fab(n-1)+fab(n-2)def wfab(n): stacks=[(0,... 阅读全文
posted @ 2014-03-17 23:59 LisPythoniC 阅读(512) 评论(0) 推荐(0) 编辑
摘要: 前段时间用类似于散弹式编程的方式,各种猜测-运行验证-修正结果,最终成功转换了一个看起来比较有难度的递归函数.但总觉得很蛋疼,原因如下:1.虽然正确,但是逻辑搞得比较复杂.现在去看,一头雾水,不知道当时是怎么想的,也没有任何欲望去理解.2.没有充分利用本地变量,而是保守地把当前栈的数据一股脑绑定到Stack对象上.3.我需要用一个Class来保存栈吗?是不是太重了?为什么不考虑用一个简单的tuple来实现呢?def recur(n): if n==1: return 1,0 return min([(2*recur(n-i)[0]+2**i-1,i) for i in... 阅读全文
posted @ 2014-03-17 23:34 LisPythoniC 阅读(300) 评论(0) 推荐(0) 编辑