int n,i,s;
s=1;
for(i=n;i>0;i--)
  s=s*i;
System.out.println(s);

解决方案 »

  1.   

    int n = Integer.valueOf(JOptionPane.showInputDialog(this, "3")).intValue();
            long result = 1;
            for (int i = 1; i <= n; i++) {
                result *= i;
            }
            System.out.println(result);当n<=0的情况没有考虑,因为我不记得在数学中是怎么定义的了。
      

  2.   

    public int factorial(int max)
    {
       int result=1;   for(int i=1;i<max;i++)
       {
          resulst*=i;
       }   return result;
    }
      

  3.   

    应该使用BigInteger
    BigInteger result = BigInteger.valueOf(1);
    for(int i = 2; i <= max; i++) {
      result = result.mulitply(BigInteger.valueOf(i));
    }
      

  4.   

    其实老师在TC下面实现的就是BigInteger.multiply()的方法,这是一个算法的问题
    大家没有看出来?
      

  5.   

    我用递归的方法
    void f(int n)
    {
       if(n==1)
         return 1;
       else
         return n*f(n-1);
    }
      

  6.   

    当初上课睡觉了,后悔啊,现在学java正好拿来讨论一下
      

  7.   

    http://blog.csdn.net/kevin_wang
    大家可以对他优化一下。
      

  8.   

    http://blog.csdn.net/kevin_wang/archive/2004/07/14/41334.aspx
      

  9.   

    public class aaa {
    public static void main(String[] args){
    BigInteger bi = BigInteger.valueOf(100);
    for(int i=bi.intValue()-1;i>0;i--){
    bi = bi.multiply(BigInteger.valueOf(i));
    }
    System.out.println(bi.toString());//这里要用toString()方法打印,结果就是你想要的,但是不是科学计数法,结果超长的
    }}
      

  10.   

    现在程序员个个都会用for循环啊,呵呵