Java的递归深度问题
Java新手,帮女儿解一道奥数题,编程了,题目如下:
有一串数,第一个是6,第二个是3,从第二个数起,每个数都比它前面的那个数和后面的那个数的和小5。那么这串数从第一个数到第200个数为止的这200个数之和是多少?
用了一个递归!想看看第200个数是多少?
public class test{
private static int fn(int n){
if (n == 0){
return 6;
}
else if (n == 1){
return 3;
}else{
return fn(n-1)+5-fn(n-2);
}
}
public static void main(String[] args) {
System.out.println(fn(199));
}
}
电脑就卡机了!后来试着把199改为15,程序运行没问题!
接着测试,发现数字大于50,就卡机!40就运行正常,请大侠们看看,啥问题?
Java没有这么脆弱吧?Eclipse LUNA
有一串数,第一个是6,第二个是3,从第二个数起,每个数都比它前面的那个数和后面的那个数的和小5。那么这串数从第一个数到第200个数为止的这200个数之和是多少?
用了一个递归!想看看第200个数是多少?
public class test{
private static int fn(int n){
if (n == 0){
return 6;
}
else if (n == 1){
return 3;
}else{
return fn(n-1)+5-fn(n-2);
}
}
public static void main(String[] args) {
System.out.println(fn(199));
}
}
电脑就卡机了!后来试着把199改为15,程序运行没问题!
接着测试,发现数字大于50,就卡机!40就运行正常,请大侠们看看,啥问题?
Java没有这么脆弱吧?Eclipse LUNA
...全文
相关推荐
Java 跳出递归循环问题解决办法
主要介绍了 Java 跳出递归循环问题解决办法的相关资料,需要的朋友可以参考下
Java递归算法
递归算法是一种直接或者间接调用自身函数或者方法的算法。Java递归算法是基于Java语言实现的递归算法。 递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。递归算法对解决一大类问题很有效,它可以使算法简洁和易于理解。 递归算法解决问题的特点: 1)递归是方法里调用自身。 2)在使用递增归策略时,必须有一个明确的递归结束条件,称为递归出口。 3)递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。所以一般不提倡用递归算法设计程序。 4)在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归
Java递归方法求5!的实现代码
主要介绍了Java递归方法求5!的实现代码,需要的朋友可以参考下
java课程设计\课程设计\Hannoi塔.rar
java课程设计\课程设计\Hannoi塔.rar 可以在netbeans6.0上直接运行
递归问题的Java实现.zip
递归问题的Java实现


Eclipse
