C++ 程序:求解级数 a^1/1! + a^2/2! + a^3/3! + a^4/4! +……+ a^n/n!


在这个问题中,我们给定两个数字 a 和 n。我们的任务是创建一个C++ 程序来求解级数 a^1/1! + a^2/2! + a^3/3! + a^4/4! +……+ a^n/n!

问题描述 - 问题是使用给定的 a 和 n 值来求解该级数的和。该级数是一个特殊的级数,其中每一项都是前一项乘以 a/i 的结果,i 从 1 到 n。

让我们举个例子来理解这个问题

输入

a = 3, n = 4

输出

15.375

解释

级数的和为

(3^1)/1! + (3^2)/2! + (3^3)/3! + (3^4)/4! = 3 + 9/2 + 27/6 + 81/24
= 15.375

解决方案方法

为了求解该级数的和,我们将使用循环来找到级数的第 i 项,并将它们加起来以求得总和。

直接计算级数的每个元素会带来计算开销。因此,我们将使用前一项来计算下一项。

这里,第 i 项 = 第 (i-1) 项 * a/i。

使用这种方法,我们可以减少计算量,从而提高代码的整体性能。

程序说明我们解决方案的工作原理

示例

 在线演示

#include <iostream>
using namespace std;
float calcSeriesSum(int a, int n){
   float sumVal = 0, term = 1;
   for(float i = 1; i <= n; i++){
      term *= a/i;
      sumVal += term;
   }
   return sumVal;
}
int main(){
   int a = 3, n = 4;
   cout<<"The sum of the series is "<<calcSeriesSum(a, n);
   return 0;
}

输出

The sum of the series is 15.375

更新于: 2020-09-16

505 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告