RT

解决方案 »

  1.   

    我只提醒一句,long类型最大能计算到20的阶乘,所以你应该用BigDecimal等可以表示更长精度的数据类型进行计算!
      

  2.   

    用递归,fac(int n){
        if(n==1)
          return 1;
        else
          return n*fac(n-1);
    }int sum;
    for(int i=1;i<=30;i++)
       sum+=fac(i);
      

  3.   

    import java.math.BigDecimal;
    public class Main {    public static void main(String[] args) {
            BigDecimal decimal = new BigDecimal("0");
            BigDecimal middle = new BigDecimal("1");
            for(int i=1;i<=30;i++){
                middle=middle.multiply(new BigDecimal(i));
                decimal = decimal.add(middle);
            }
            System.out.println(decimal);
        }
    }感觉是正确的了.
      

  4.   

    刚学java不久,你那个数太大啦,我还不知道怎么做。
    只能给出个1-20的答案。
    public class jiecheng{
    public static void main(String args[]){
    long sum=0;
    long s=1;
    for(int i=1;i<=20;i++){
    s=i*s;
    sum=sum+s;}
    System.out.println(sum);
    }
    }