递归问题(我自己没看出来)结果应该是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);
}
是没问题呢!!