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

시리즈 1/1의 합을 구하는 C++ 프로그램! + 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