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

계열의 합 1^2 + 3^2 + 5^2 + . . . + (2*n - 1)^2 C++


이 문제에서는 시리즈의 숫자 n이 지정됩니다. 우리의 임무는 주어진 n 값에 대해 1^2 + 3^2 + 5^2 +... + (2*n - 1)^2 계열의 합을 찾는 것입니다.

문제를 이해하기 위해 예를 들어 보겠습니다.

입력 -

n = 5

출력 -

84

설명 -

sum = 1^2 + 3^2 + 5^2 + 7^2 + 9^2
= 1 + 9 + 25 + 49 = 84

이 문제를 해결하기 위한 기본적인 접근 방식은 급수의 합에 대한 공식을 직접 적용하는 것입니다.

예시

#include <iostream>
using namespace std;
int calcSumOfSeries(int n) {
   int sum = 0;
   for (int i = 1; i <= n; i++)
   sum += (2*i-1) * (2*i-1);
   return sum;
}
int main() {
   int n = 5;
   cout<<"The sum of series up to "<<n<<" is "<<calcSumOfSeries(n);
   return 0;
}

출력

The sum of series up to 10 is 165

해결하는 또 다른 방법은 수학 공식을 사용하여 급수의 합을 찾는 것입니다.

합계는,

1^2 + 3^2 + 5^2 + … + (2*n - 1)^2 =
{(n * (2*(n-1)) * (2*(n+1)))/3}

예시

#include <iostream>
using namespace std;
int calcSumOfSeries(int n) {
   return (n * (2 * n - 1) * (2 * n + 1)) / 3;
}
int main() {
   int n = 5;
   cout<<"The sum of series up to "<<n<<" is "<<calcSumOfSeries(n);
   return 0;
}

출력

The sum of series up to 5 is 165