题目描述
用高精度计算出 S=1!+2!+3!+⋯+n!(n≤50)。
其中“!”表示阶乘,例如:5!=5×4×3×2×1。
输入格式
一个正整数 n。
输出格式
一个正整数 S,表示计算结果。
输入输出样例
输入
3
输出
9
源码
//使用 java 的 BigInteger 完成计算。
import java.math.BigInteger;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
BigInteger sum = BigInteger.valueOf(1);
for(int i=2;i<=n;i++) {
sum = sum.add(fun(i));//类似于int的 sum += fun(i);
}
System.out.println(sum);
}
//阶乘函数
public static BigInteger fun(int n) {
BigInteger big = BigInteger.valueOf(n);
for(int i=n-1;i>0;i--) {
BigInteger tmpi = BigInteger.valueOf(i);
big = big.multiply(tmpi);//类似于int的 big *= tmpi;
}
return big;
}
}