读书人

递归有关问题(小弟我自己没看出来)结

发布时间: 2013-01-28 11:49:56 作者: rapoo

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

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);
}

[解决办法]
第一趟: 3 * f1(2)

第二趟: 2 * f1(1)

第三趟: 1

所以结果是 3 * 2 * 1 = 6

请楼主你别忽悠人好吧...

另外 return n*f(n-1); 应该是 return n*f1(n-1); 吧

又忽悠我们。
[解决办法]
public static long f1(int n){
if(n==1){
return 1;
}
return n*f1(n-1);
}

是没问题呢!!

读书人网 >J2SE开发

热点推荐