递归不太懂得说,请教大虾了

解决方案 »

  1.   

    我好久也没碰这个了
    我的理解是:
    10!=10*9!
    9!=9*8!
    ........
    2!=2*1!
    1!=1int calc(int n){
        if(n==1)
            return 1;
        else
            return n*calc(n-1);
    }
      

  2.   

    不一定得用递归,在java中有BigInteger类型,求100!都没问题
    TestFactorial.java
    ====================================================
    import java.math.BigInteger;public class TestFactorial {
    public static void main(String args[]) {
    TestFactorial testFatorial = new TestFactorial();
                    //求100!
    BigInteger ii = testFatorial.factorial(100);
    System.out.println("100!=" + ii);
    }

    public BigInteger factorial(int n){
    if( n < 1)return BigInteger.valueOf(-1);
    BigInteger ii = BigInteger.valueOf(1);
    for(int i = 2;i < n;i++){
    ii = ii.multiply(BigInteger.valueOf(i));
    }
    return ii;
    }
    }
      

  3.   

    long fun(int n){ 
    if(n>1) return n*fun(n-1); 
    return 1;