黑马程序员技术交流社区
标题:
关于方法递归的问题
[打印本页]
作者:
成都—陈超
时间:
2013-6-18 14:29
标题:
关于方法递归的问题
本帖最后由 成都—陈超 于 2013-6-18 21:23 编辑
递归的关键思想是什么 ? 在什么情况下使用?请附例子!谢谢。。。我是新手
今天看书的时候看到树上构建二叉树,用递归插入左树右树 一直没怎么弄懂方法是怎么调用的 请附一个简单的例子
作者:
wanghuailin1030
时间:
2013-6-18 14:52
参考下列的例子。递归犹如多吗若骨牌一样,一个函数套一个函数,函数调用自己本身,直到遇到特殊值。至于什么二叉树的,我照下面的例子说说看,根结点就是Foo(30),调用出两个F00(29)+Foo(28)。分别是左右树,Foo(29)又调用Foo(28)+Foo(27),又有两个左右树。这样一直调用,直到为0 或者1、2。
一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。 //前两个数想加等于第三个数
答:public class MainClass
{
public static void Main()
{
Console.WriteLine(Foo(30));
}
public static int Foo(int i)
{
if (i <= 0)
return 0;
else if( i <= 2)
return 1;
else
return Foo(i -1) + Foo(i - 2);
}
}
作者:
aa26963
时间:
2013-6-18 22:37
其实 递归如果能找准出口 就很好写了,举一个 简单的例子,求N的阶乘。
class jiechen
{
//计算每个数的阶乘,递归函数
static double f(int n)
{
if (n<0) return -1;
if (n == 1||n==0)
return 1;
else
return n*f(n - 1);
}
}
前两个if就是出口,找到就很好写了。
找个OJ上练习点 动态规划 的题目,理解递归就更容易了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2