今天遇到的:
     请用伪代码给个算法计算 X = 2000!     
 狂晕,请高手指点一二

解决方案 »

  1.   

    3.316275092450658 E5735| 5735次方   double j = 1d;
    for (int i = 1; i <= 2000; i++) {
    j *= i;
    if (i % 10 == 0) {
    j = j / Math.pow(10, 28);
    }
      

  2.   

    写一个方法求n的阶乘,判断如果n=0||n=1,返回1,如果n<0,返回0,然后利用递归,返回n*(n-1)
      

  3.   

    你可以试着用BigInteger来存,主要还是效率问题
      

  4.   

     public class digui{
     public long factorial(long n){
     if(n==1){
     return 1;
      }
      return n*factorial(n-1);
      }
      public static void main(String [] args){
      digui di=new digui();
      di.factorial(2000)
      }
      

  5.   

    public class digui{ 
    public double factorial(long n){ 
    if(n==1){ 
    return 1; 
      } 
      return n*factorial(n-1); 
      } 
      public static void main(String [] args){ 
      digui di=new digui(); 
      di.factorial(2000) 
      }
    把类型改一下。