题目 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;
    }
}
相关推荐
独自破碎E1 分钟前
Java中的Exception和Error有什么区别?
java·开发语言
小徐Chao努力7 分钟前
【Langchain4j-Java AI开发】08-向量嵌入与向量数据库
java·数据库·人工智能
zyx没烦恼8 分钟前
YAML模块
开发语言·python
智航GIS12 分钟前
4.2 集合(Set)
开发语言·python
小白学大数据16 分钟前
利用 Selenium 与 BeautifulSoup 构建链家动态爬虫
开发语言·爬虫·selenium·beautifulsoup
qq_3771123716 分钟前
从零开始深入理解并发、线程与等待通知机制
java·开发语言
小徐Chao努力18 分钟前
【Langchain4j-Java AI开发】07-RAG 检索增强生成
java·人工智能·python
花哥码天下24 分钟前
修复Bash脚本Here Document错误
开发语言·bash
Rysxt_29 分钟前
UniApp uni_modules 文件夹详细教程
开发语言·javascript·ecmascript
JoannaJuanCV30 分钟前
自动驾驶—CARLA仿真(30)交通管理器(Traffic Manager)
java·redis·自动驾驶