查找系列 1/1 之和的Java程序! + 2/2! + 3/3! + ……1/N!
一个数字的阶乘简单地返回该数字与所有小于应用阶乘的数字的乘积。现在问题出现了该级数是收敛的还是发散的。根据数学中无穷级数和阶乘的概念,级数可能不收敛,但可以包含收敛子序列。
插图:
n! = n * (n-1) × (n-2) × (n-3) × (n-4) × …… × 4 × 3 × 2 × 1
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)