运行出现Exception in thread "main" java.lang.StackOverflowError 怎么解决

雪落无痕 2013-03-13 04:55:06

public class Test {
public static void main(String[] args) {
System.out.println(f(4));
}
public static int f(int n) {
if(n==1&n==2)
return 1;
else
return f(n-1)+f(n-2);
}
}
...全文
761 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shine333 2013-03-14
  • 打赏
  • 举报
回复
1 世界上没有任何数字即等于1又等于2 2 即使想写逻辑与,那也是&&,一个&是按位与
qianeraben 2013-03-13
  • 打赏
  • 举报
回复
条件写错了,造成死循环了,堆栈就溢出了~~
sffx123 2013-03-13
  • 打赏
  • 举报
回复
楼上+1,楼主条件错了,导致递归结束不了,堆栈溢出了
  • 打赏
  • 举报
回复
if(n==1&n==2)改为 if(n==1||n==2)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧