一些需要递归的问题总是让我陷入困境。我并不总是能想出一个递归算法,但我知道这个问题有一个递归的解决方案。
我发现像阶乘和斐波那契这样的问题很容易使用递归方法实现。但是当我面对更复杂的问题时,比如生成一个数字http://en.wikipedia.org/wiki/Partition_%28number_theory%29的分区,我知道有一种可能的递归方法,但我就是卡在那里了。我想不出递归算法。假设我想要打印一个字符串的所有组合,或者如果我想要使用递归强行解决硬币找零问题,我不能设计一个递归方法。
有没有什么特别的方式来思考,从而想出一个递归的方法?有没有什么丰富的递归算法教程可以帮助我解决更高级的问题?
发布于 2011-10-25 03:01:50
浏览,在Stack Overflow上强烈推荐它,并且可以在线免费获得。它使用Scheme编程语言来教授有关编程的基本概念。由于Scheme是一种函数式编程语言,因此递归被广泛使用-不仅在命令式编程语言(如C或PHP )中使用递归,而且在通常使用循环结构的地方也使用递归。书中的例子和问题呈现了自然栖息地中的递归,如果你愿意的话,而不是通过复杂的虚构的场景。
https://stackoverflow.com/questions/7880287
复制相似问题