编写java程序,计算1!+2!+3!+...20!之和并在屏幕上输出

解决方案 »

  1.   

    以前写过一个
    import java.math.BigDecimal;public class Test{
        public static void main(String[] args) {
            BigDecimal result = new BigDecimal(0);
            BigDecimal decimal = new BigDecimal(1);
            for(int i=1;i<=20;i++){
                decimal = decimal.multiply(new BigDecimal(i));
                result = result.add(decimal);
             //   System.out.println(result);
            }
            System.out.println(result);
        }
    }
      

  2.   

    BigInteger s = BigInteger.valueOf(1);
    for (int i = 1; i <= 10; i++) {
    s = s.multiply(BigInteger.valueOf(i));
    }
      

  3.   

    class T {
    public static void main(String[] args) {
    // 方法一使用循环
    double sum = 0;
    double an = 1;
    for (int i = 1; i < 21; i++) {
    an=1;
    for (int j = 1; j <= i; j++) {
    an *= j;
    }
    sum += an;
    }
    System.out.println(sum);
    System.out.println(m1(20));
    } // 方法二,使用递归方式也可以达到相同的效果
    static double m1(int n) {
    double sum=0;
    for(int i=1;i<=n;i++)
    {
    sum+=m2(i);
    }
    return sum;
    } static double m2(int n) {
    if(n<=1)
    return 1;
    else 
    return n*m2(n-1);
    }
    }
      

  4.   

    随便写的:
     public void add() 

     int i,m,n=1; 
     long sum=0; 
     for(i=1;i<=20;i++) 
     { 
      for(m=1;m<=i;m++) 
      { 
       n=n*m; 
      } 
      sum=sum+n; 
     } 
     printf(sum); 
      

  5.   

    对不起,应为System.out.println(sum);写成c了
      

  6.   


    public void math(int i) {
        int sum = 1;
        for (int m = 1; m <= i; m++) {
            sum = sum * m;
        }
        System.out.println(sum);
    }
    不是这个吗?
      

  7.   

    public void math(int i) { 
        int sum = 1; 
        for (int m = 1; m <= i; m++) { 
            sum = sum * m; 
        } 
        System.out.println(sum); 
      

  8.   

    1!+2!+3!+...20!public void math(int i) {
        int sum = 1;
        for (int m = 1; m <= i; m++) {
            sum += sum * m;
        }
        System.out.println(sum);
      

  9.   

    1. 用大数运算,比如BigInteger,单单一个20!的结果就已经超过2^31-1了。2. 计算n!的时候,利用(n-1)!的结果,提高效率
      

  10.   

    接分:public class JieCheng {
    public static void main(String[] s){
    int tot = 0;
    for(int i=1 ; i<=4 ; i++){
    int tmp = i;
    int j=i;
    while(j>1){
    tmp=tmp*(j-1);
    j--;
    }
    tot = tot + tmp;
    }
    System.out.println(tot);
    }
    }
      

  11.   

    阶乘这么经典的问题肯定是递归做最简单了!class JieCeng { 
    public static void main(String[] args) { 
      int sum(int n) { 
    int sum=0; 
    for(int i=1;i <=n;i++) 

        sum+=recursion(i); 

    return sum; 
       }   int recursion(int n) { 
    if(n <=1) 
       return 1; 
    else 
       return n*recursion(n-1);  
      }
      System.out.println(sum(20));
    }
     
      

  12.   

    拜托,哪有那么容易就接分,起码也要用个BigInteger吧。20!= 2432902008176640000,
    int型的最大值 = 2147483637