今天学习了用Java写递归问题,以下就是用Java对fibo函数的应用:
public class fibo {
public int fibo(int n) {
if(n1||n2)
return 1;
else
return fibo(n-1)+fibo(n-2);
}
public static void main(String []args){
fibo x=new fibo();
int a =x.fibo(7);
System.out.println(a);
}
}
编译运行结果如下:
C:\Users\86181>d:
D:>javac fibo.java
D:>java fibo.java
13
画了一下内存图,觉得有点奇怪,感觉不是很会画,
我觉得程序运行的话应该从n=7开始,然后一步一步地向前推,然后把最后的结果累加起来放到最下面的栈里。
感觉自己的表达不是很好,应该是对内存这一块还不够明白,看来今后还得多练练写递归,画内存图,不能看得懂就行,而应该能做好才行。