PTA 程序设计天梯赛 Java L1-013 计算阶乘和 (10分)

L1-013 计算阶乘和

对于给定的正整数N,需要你计算 S=1!+2!+3!+…+N!。

输入格式:
输入在一行中给出一个不超过10的正整数N。

输出格式:
在一行中输出S的值。

输入样例:

3

输出样例:

9

实现代码

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    
    
    private static int num = 1;
    public static void main(String[] args) {
    
    
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        try {
    
    
            int n = Integer.parseInt(bf.readLine()); // 输入
            int sum = 0; // 计算阶乘和
            for (int i = 1; i <= n; i++) {
    
    
                sum += factorial(i); // 递归 计算单个阶乘
                num = 1;
            }
            System.out.println(sum);
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
    }

    public static int factorial(int i){
    
    
        if (i==1) return 1;  //终止条件
        num *= i*factorial(i-1);
        return num;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_37079157/article/details/109276295