就一句Java代码读不懂 请高人帮忙解释下

就一句Java代码读不懂 请高人帮忙解释下
public static int f(int n) {
if(n==1 || n==2) {
return 1;
} else{
return f(n-1) +f(n-2);
}
}
问题怎么使用输出 用递归算100-1的和 我能看懂
这个太绕啦 2个数都是自己掉自己的方法 无限循环 怎么能输出数值啊 怎么使用 他的目的是什么
百度那个我早看啦 对我帮助不大 所以分不能给你 不好意思 但还是谢谢你
mango_tree 1年前 已收到1个回答 举报

酸文假醋 幼苗

共回答了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
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.071 s. - webmaster@yulucn.com