COJ 1019 JAVA入门练习

Description
用高精度计算出S=1!+2!+3!+…+n!(n≤50)
其中“!”表示阶乘,例如:5!=5*4*3*2*1。

Input
只有一行,一个正整数n。

Output
只有一行,一个正整数S。

Sample Input
48

Sample Output
12678163798554051767172643373255731925167694226950680420940313


又一道大数题……正好可以用来练习JAVA大笑
import java.io.*;
import java.math.*;
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner cin=new Scanner (new BufferedInputStream(System.in));
        int j=1,n=cin.nextInt();
        String sum="0";
        while(n>0)
        {
            BigInteger p=BigInteger.valueOf(j);
            for(int i=1;i<=n;i++){
                BigInteger q=BigInteger.valueOf(i);
                p=p.multiply(q);
            }
            BigInteger w=new BigInteger(sum);
            w=w.add(p);
            sum=w.toString();
            n--;
        }
        System.out.println(sum);
    }
}


你可能感兴趣的:(COJ 1019 JAVA入门练习)