int t=1;
for(int i=100;i>0;i--)
  t=t*i;

解决方案 »

  1.   

    些了一个方法:
    public int faq(int x)
    {
      if(x<0) 
      {
        System.out.println("The argument is error!") ;
        return -1 ;
      }
      else if(x <= 1)
      {
        System.out.println("The value is : " + 1) ;
        return 1 ;   
      }
      else
      {
        return (x * faq(x)) ;
      }
    }
      

  2.   

    修改上面:倒数第三行: return (x * faq(x-1)) ;
      

  3.   

    肯定有问题啦,100!早就超过了int的界限,你只能用double或者BigInteger来完成
      

  4.   

    BigInteger t=new BigInteger("1");
            for(int i=100;i>0;i--)
                t = t.multiply(new BigInteger(Integer.toString(i)));
            System.out.println(t.toString());结果:
    93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
      

  5.   

    import java.math.*;public class N {
     public static void main(String[] args) {
        BigInteger result = BigInteger.ONE;
        for(int i = 2; i <= 100; i++) {
          result = result.multiply(BigInteger.valueOf(i));
        }
        System.out.println(result);
     }
    }