이 문제에서는 두 개의 숫자와 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