JAVA P1009 [NOIP1998 普及组] 阶乘之和

题目描述
用高精度计算出 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;
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_46574356/article/details/122910320