1024: 求1+2!+3!+...+N!的和

来源:互联网 发布:数据报表分析 编辑:程序博客网 时间:2024/06/01 10:10

题目

Description

求1+2!+3!+…+N!的和

Input

正整数N(N〈=20)

Output

1+2!+3!+…+N!的和 (结果为整数形式)

Sample Input

3
Sample Output

9


代码块

import java.math.BigInteger;import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner cin = new Scanner(System.in);        int N = cin.nextInt();        System.out.println(sum(N));        cin.close();    }    //使用循环计算和    private static BigInteger sum(int n) {        BigInteger s = new BigInteger(Integer.toString(0));        for (int i = 1; i <= n; i++)            s=(s.add(factorial(i)));        return s;    }    //使用递归的方法计算每一个数的阶乘    private static BigInteger factorial(int i) {    //如果当i等于1时,返回1,如果不等于1 时 返回factori(i-1)和factori(i)的值        return i == 1 ? new BigInteger("1"): factorial(i - 1).multiply(                new BigInteger(Integer.toString(i)));    }}
0 0
原创粉丝点击