C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

シリーズの合計2+(2 + 4)+(2 + 4 + 6)+(2 + 4 + 6 + 8)+ ... +(2 + 4 + 6 + 8 + ... + 2n) C ++


この問題では、級数2のn番目の項を定義する数nが与えられます+(2 + 4)+(2 + 4 + 6)+(2 + 4 + 6 + 8)+ ... +(2 + 4 + 6 + 8 + ... + 2n)。私たちの仕事は、シリーズの合計を見つけるプログラムを作成することです。

問題を理解するために例を見てみましょう

入力

n = 3

出力

説明 合計=(2)+(2 + 4)+(2 + 4 + 6)=2 + 6 + 12 =20

この問題の簡単な解決策は、ネストされたループを使用することです。内側のループは、シリーズのi番目の要素を見つけて、すべての要素を合計変数に合計します。

ソリューションの動作を説明するプログラム

#include <iostream>
using namespace std;
int calcSeriesSum(int n) {
   int sum = 0;
   for (int i = 1; i<=n; i++) {
      int even = 2;
      for (int j = 1; j<=i; j++) {
         sum += even;
         even += 2;
      }
   }
   return sum;
}
int main() {
   int n = 5;
   cout<<"Sum of the series 2 + (2+4) + (2+4+6) + ... + (2+4+6+...+"<<(2*n)<<") is "<<calcSeriesSum(n);
   return 0;
}

出力

Sum of the series 2 + (2+4) + (2+4+6) + ... + (2+4+6+...+10) is 70

問題の時間計算量はO(n 2 のオーダーであるため、これは問題を解決するための最も効果的な方法ではありません。 。

この問題の効果的な解決策は、級数の合計に数式を使用することです。

シリーズは2+(2 + 4)+(2 + 4 + 6)+(2 + 4 + 6 + 8)+ ... +(2 + 4 + 6 + 8 + ... + 2n)

シリーズのn番目の用語は

です。

a n =(2 + 4 + 6 + 8+…+2n)=(n * n)+ n

a n nまでの偶数の合計です。

シリーズの合計は

sum = 2 + (2+4) + (2+4+6) + (2+4+6+8) + ... + (2+4+6+8+...+2n)
sum = ∑ (n2 + n)
sum = ∑ n2 + ∑ n
sum = [ (n*(n+1)*(2n + 1))/6 ] + [ (n*(n+1))/2 ]
sum = ½ (n*(n+1)) [(2n + 1)/3 + 1]
sum = ½ (n*(n+1)) [(2n + 1 + 3)/3]
sum = ½ (n*(n+1)) [2(n+2)/3]
sum = ⅓ n*(n+1)(n+2)

ソリューションの動作を説明するプログラム

#include <iostream>
using namespace std;
int calcSeriesSum(int n) {
   return ((n)*(n+1)*(n+2)/3);
}
int main() {
   int n = 5;
   cout<<"Sum of the series 2 + (2+4) + (2+4+6) + ... + (2+4+6+...+"<<(2*n)<<") is "<<calcSeriesSum(n);
   return 0;
}

出力

Sum of the series 2 + (2+4) + (2+4+6) + ... + (2+4+6+...+10) is 70

  1. シリーズ23+45+75+…..最大N項の合計を求めるC++プログラム

    このチュートリアルでは、与えられたシリーズの合計を見つけるプログラムについて説明します23+45+75+…..最大N項。 このために、Nの値が与えられます。私たちのタスクは、最初の項から始まるすべての項を合計して、与えられた系列の合計を見つけることです。 これを解いた後、級数の合計の式を取得します; Sn =(2n(n + 1)(4n + 17)+ 54n)/ 6 例 #include <iostream> using namespace std; //calculating the sum of the series int calc_sum(int N) { &n

  2. 算術級数の合計のためのC++プログラム

    「a」(第1項)、「d」(共通の差)、「n」(文字列内の値の数)が与えられ、タスクは級数を生成し、それによってそれらの合計を計算することです。 算術級数とは 算術級数は、シリーズの最初の項が「a」で固定され、それらの間の一般的な違いが「d」である、共通の違いを持つ数列です。 -として表されます a、a + d、a + 2d、a + 3d 、。 。 。 例 Input-: a = 1.5, d = 0.5, n=10 Output-: sum of series A.P is : 37.5 Input : a = 2.5, d = 1.5, n = 20 Output : sum of s