C++程序,用于求解级数1/1! + 2/2! + 3/3! + 4/4! + …… n/n! 的和。
在这里,我们将了解如何求解给定级数的和。n的值将由用户输入。我们可以通过编写一个阶乘函数,并在循环的每个步骤中计算阶乘来解决这个问题。但是,阶乘计算比普通的加法运算代价更高。我们将使用前一个阶乘项来计算下一个阶乘项。例如,3! 是 (3 * 2 * 1),而 4! 是 4 * 3!。因此,如果我们将 3! 存储到某个变量中,我们就可以利用它,只需加上下一个数字即可轻松获得下一个阶乘。
算法
sum_series_fact(n)
begin res := 0 denominator := 1 for i in range 1 to n, do denominator := denominator * i res := res + i / denominator done return res end
示例
#include<iostream> using namespace std; float series_result(int n) { float denominator = 1; float res = 0; for(int i = 1; i<= n; i++) { denominator *= i; res += float(i/denominator); } return res; } main() { int n; cout << "Enter number of terms: "; cin >> n; cout << "Result: " << series_result(n); }
输出
Enter number of terms: 5 Result: 2.70833
输出
Enter number of terms: 3 Result: 2.5
广告