黑马程序员技术交流社区
标题:
关于一个菜鸟对递归的理解,大神无视我吧。。
[打印本页]
作者:
苏乞儿
时间:
2014-9-11 12:15
标题:
关于一个菜鸟对递归的理解,大神无视我吧。。
1、求高斯数列n项的和sum(n)=1+2+3+。。。+(n-1)+n,我以前用编程的思想理解,不过刚想到第三层方法的出栈进栈就“蒙圈了”,后来想了想不是跟数学上的递归是一样的吗?其实sum(n)=sum(n-1)+n。用编程实现这个方程式即可:
private static void gaoSi(int n){
if(n=1)
return 1;
return gaoSi(n-1)+n;
}//这样就好理解多了
2、求一个数n的阶乘:n!=1*2*3*。。。。*(n-1)*n=n*(n-1)!也是一样的
private static void jieCheng(int n){
if(n=1)
return 1;
return jieCheng(n-1)*n;
}
3、求斐波那契数列,(经典的小兔子问题,只要把return 1改为return 2即可),第n项等于第n-1项和n-2项的和
private static void fiboMethod(int n){
if(n=1||n=2)
return 1;
return fiboMethod(n-1)+fiboMethod(n-2);
}
还有好多类似的问题,希望对初学java的,没有弄懂递归的同学有点帮助,:)大神无视我吧。。
作者:
fantacyleo
时间:
2014-9-11 14:45
递归本来就是一种数学思想。出栈进栈是计算机实现递归思想的具体方式,搞明白这个过程可以加深对内存的理解。但如果是站在阅读、编写源代码的角度,回到其数学本原更加容易理解
作者:
苏乞儿
时间:
2014-9-11 23:17
fantacyleo 发表于 2014-9-11 14:45
递归本来就是一种数学思想。出栈进栈是计算机实现递归思想的具体方式,搞明白这个过程可以加深对内存的理解 ...
就是这么个意思。。。。菜鸟膜拜了。。。。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2