题目 2114: 信息学奥赛一本通T1173-阶乘和

题目描述:

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

输入正整数n,输出计算结果S。

代码:

java 复制代码
package lanqiao;

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 = new BigInteger("0");

        for(int i = 1;i <= n;i ++)
        {
            sum = sum.add(f(i));
        }
        System.out.println(sum);
    }

    public static BigInteger f(int n)
    {
        BigInteger sum = new BigInteger("1");

        for(int i = 1;i <= n;i ++)
        {
            sum = sum.multiply(new BigInteger(String.valueOf(i)));
        }
        return sum;
    }
}
相关推荐
晨晖21 分钟前
直接插入排序
c语言·数据结构·c++·算法
宋情写1 分钟前
Java基础篇01-环境搭建+入门体验
java·开发语言
悟能不能悟4 分钟前
java list=null,可以stream吗
java·windows·list
cike_y5 分钟前
Mybatis-万能的Map&模糊查询
java·开发语言·mybatis·安全开发
郝学胜-神的一滴10 分钟前
Linux的pthread_self函数详解:多线程编程中的身份标识器
linux·运维·服务器·开发语言·c++·程序人生
HUST15 分钟前
C 语言 第七讲:数组和函数实践:扫雷游戏
c语言·开发语言·数据结构·vscode·算法·游戏·c#
oioihoii15 分钟前
C++高并发编程核心技能解析
开发语言·c++
玖剹18 分钟前
字符串相关题目
c语言·c++·算法·leetcode
llz_11219 分钟前
图(邻接表)-(DFS/BFS)-Dijkstra
算法·深度优先·dijkstra·宽度优先
jimy119 分钟前
程序崩溃free(): double free detected in tcache 2
linux·开发语言·数据结构·链表