📌  相关文章
📜  查找系列 1/1 之和的Java程序! + 2/2! + 3/3! + ……1/N!

📅  最后修改于: 2022-05-13 01:55:46.003000             🧑  作者: Mango

查找系列 1/1 之和的Java程序! + 2/2! + 3/3! + ……1/N!

一个数字的阶乘简单地返回该数字与所有小于应用阶乘的数字的乘积。现在问题出现了该级数是收敛的还是发散的。根据数学中无穷级数和阶乘的概念,级数可能不收敛,但可以包含收敛子序列。

插图:

Input      : n = 5
Processing : 1/1! + 2/2! + 3/3! + 4/4! + 5/5!
             1    + 2/2  + 3/6  + 4/24 + 5/120
Output     : 2.708333333333333            

方法 :

  • 输入项数 N。
  • 创建一个函数来计算系列的总和,例如,calculateSum。
  • 在calculateSum函数() 中,创建一个变量sum,用于存储系列的总和。
  • 运行一个循环 N 次。
  • 调用阶乘函数() 来计算给定数字的阶乘。
  • 返回总和。

执行:

Java
// Java Program to Find Sum of the Series
// 1/1! + 2/2! + 3/3! + ……1/N!
 
// Importing java generic libraries
import java.io.*;
 
class GFG {
   
    // Function(recursive) to calculate factorial
    public static double factorial(int i)
    {
        // Step1: Base case
        if (i == 1) {
            return 1;
        }
        // Step2&3: Recursion execution & call statements
        return i * factorial(i - 1);
    }
 
    // Fuction to calculate sum of series
    public static double calculateSum(int N)
    {
        // Store total_sum in sum
        double sum = 0;
 
        // Iteration by running a loop N times
        for (int i = 1; i <= N; i++) {
            sum = sum + ((double)i / factorial(i));
        }
 
        // Return calculated final sum
        return sum;
    }
 
    // Main driver method
    public static void main(String[] args)
    {
        /* No of terms in series
           taken inn order to show output */
        int N = 5;
 
        // Print sum of series by
        // calling function calculating sum of series
        System.out.println("The sum of series upto " + N
                           + " terms is : "
                           + calculateSum(N));
    }
}


输出
The sum of series upto 5 terms is : 2.708333333333333

时间复杂度: O(n)