题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
源代码是这样的:
public class Prog1{
public static void main(String[] args){
int n = 10;
System.out.println("第"+n+"个月兔子总数为"+fun(n));
}
private static int fun(int n){
if(n==1 || n==2)
return 1;
else
return fun(n-1)+fun(n-2);
}
}
这个主函数里面定义了一个fun(int n)方法,方法内部return语句又调用了它自己,这样不会陷入一个一直调用一直进栈的死循环吗?为什么程序还可以正常运行? |
|