递归问题(我自己没看出来)结果应该是6,为什么运行结果是9

阿杰不爱 2013-01-25 09:52:48
public class Recursion {
public static void main(String[] args){
System.out.println(f1(3));
}
/*1*2*3*.......*n =f(n) =f(n-1)*n
*
*/
public static long f1(int n){
if(n==1){
return 1;
}
return n*f(n-1);
}
...全文
133 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿杰不爱 2013-01-25
  • 打赏
  • 举报
回复
我知道怎么回事了,我连续写了好几个递归,return 错了,谢谢
小小X 2013-01-25
  • 打赏
  • 举报
回复
public static long f1(int n){ if(n==1){ return 1; } return n*f1(n-1); } 是没问题呢!!
xtfgy2012 2013-01-25
  • 打赏
  • 举报
回复
第一趟: 3 * f1(2) 第二趟: 2 * f1(1) 第三趟: 1 所以结果是 3 * 2 * 1 = 6 请楼主你别忽悠人好吧... 另外 return n*f(n-1); 应该是 return n*f1(n-1); 吧 又忽悠我们。

62,620

社区成员

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

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