A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

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的,没有弄懂递归的同学有点帮助,:)大神无视我吧。。

评分

参与人数 1黑马币 +5 收起 理由
fantacyleo + 5

查看全部评分

2 个回复

正序浏览
fantacyleo 发表于 2014-9-11 14:45
递归本来就是一种数学思想。出栈进栈是计算机实现递归思想的具体方式,搞明白这个过程可以加深对内存的理解 ...

就是这么个意思。。。。菜鸟膜拜了。。。。。。。
回复 使用道具 举报
递归本来就是一种数学思想。出栈进栈是计算机实现递归思想的具体方式,搞明白这个过程可以加深对内存的理解。但如果是站在阅读、编写源代码的角度,回到其数学本原更加容易理解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马