酸文假醋
幼苗
共回答了18个问题采纳率:83.3% 举报
public static int f(int n) { // 方法,返回值是整形,有一个参数:n
if(n==1 || n==2) { // 如果n等于1或者2就直接返回1
return 1;
} else{ // 如果不等于1或者2就把n减一,然后递归运行直到n等于1或2为止.另外一组也是同样运行.
return f(n-1) +f(n-2);
}
}
return f(n-1) +f(n-2); 这里使用了递归调用,就是说自己调用自己.从程序上看比较难看,你用断点的执行方式执行就会好看很多了.
还有就是要注意的,递归是的次数是有限制的.java默认的深度好像是1024层.如果大于这个次数,是会抛出堆栈溢出异常的.
不过这样的程序在还没有堆栈溢出之前就死了.因为CPU负荷已经满了.
试试运行f(1000)嘿嘿!
1年前
8