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

以上是 C ++程序找到1/1系列的总和!+ 2/2!+ 3/3!+ 4/4!+……n / n! 的全部内容, 来源链接: utcz.com/z/322393.html

回到顶部