递归有关问题(小弟我自己没看出来)结果应该是6,为什么运行结果是9
递归问题(我自己没看出来)结果应该是6,为什么运行结果是9public class Recursion {public static void mai
递归问题(我自己没看出来)结果应该是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);
}
是没问题呢!!