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

解决方案 »

  1.   

    第一趟: 3 * f1(2)第二趟: 2 * f1(1)第三趟: 1所以结果是 3 * 2 * 1 = 6  请楼主你别忽悠人好吧...另外 return n*f(n-1);  应该是 return n*f1(n-1); 吧又忽悠我们。
      

  2.   

      public static long f1(int n){
            if(n==1){
                return 1;
            }
            return n*f1(n-1);
        }是没问题呢!!
      

  3.   

    我知道怎么回事了,我连续写了好几个递归,return 错了,谢谢