Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

급수의 합을 구하는 프로그램 a^1/1! + a^2/2! + a^3/3! + a^4/4! +…….+ a^n/n! C++에서

<시간/>

이 문제에서는 두 개의 숫자와 n이 제공됩니다. 우리의 임무는 시리즈 a^1/1의 합을 찾는 프로그램을 만드는 것입니다! + a^2/2! + a^3/3! + a^4/4! +…….+a^n/n! C++에서 .

문제 설명 - 문제는 주어진 값과 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