我一直在关注编码Bat的当前问题:
我们有由块组成的三角形。最上面一行有1块块,下一行有2块块,下一行有3块块,依此类推。递归计算(没有循环或乘法)这样一个给定行数的三角形中的块总数。
我知道问题是什么,我也知道递归是如何工作的。例如,如果给我一个递归函数,我可以手动计算出来,并显示输出结果。
问题实际上是从给定的问题创建递归函数,比如下面这个问题。我不确定如何真正设置它并递归地完成它。当实际设置递归问题时,是否有某种规则可遵循?我只能找到展示递归如何工作的示例,而不是展示如何实际解决递归问题。任何帮助理解如何准备编写实际的递归算法的人都将不胜感激。
发布于 2013-01-24 03:16:12
大致如下:
因此,递归采用自上而下的方法(从较复杂的问题到较简单的问题)。
您可能知道这一点,但如果不知道,它可能会对您有所帮助。
发布于 2013-01-24 03:00:32
if(rows == 1) return 1;在这里是没用的。
对于递归全局问题,您必须拆解您的问题并找到:
并将它们组合到一个调用自身的函数中。
发布于 2013-01-24 03:01:11
对于recursion算法,
首先设计base用例,对于该用例,函数应启动堆栈的展开或返回基值。
然后针对每种non-base情况设计要实际完成的算法
https://stackoverflow.com/questions/14487234
复制相似问题