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

級数の合計1+(1 + 3)+(1 + 3 + 5)+(1 + 3 + 5 + 7)+ +(1 + 3 + 5 + 7 + .... +(2n-1) )C++で


この問題では、整数nが与えられます。私たちのタスクは、級数1 +(1 + 3)+(1 + 3 + 5)+(1 + 3 + 5 + 7)+ +(1 + 3 + 5 + 7 + .... +(2n-1))。

このシリーズから、シリーズのi番目の項が最初のi個の奇数の合計であることがわかります。

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

入力

n = 3

出力

14

説明- (1)+(1 + 3)+(1 + 3 + 5)=14

この問題の簡単な解決策は、ネストされたループを使用してから、すべての奇数を合計変数に追加することです。次に、合計を返します。

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

#include <iostream>
using namespace std;
int calcSeriesSum(int n) {
   int sum = 0, element = 1;
   for (int i = 1; i <= n; i++) {
      element = 1;
      for (int j = 1; j <= i; j++) {
         sum += element;
         element += 2;
      }
   }
   return sum;
}
int main() {
   int n = 12;
   cout<<"Sum of the series 1 + (1+3) + (1+3+5) + (1+3+5+7) + ... + (1+3+5+7+ ... + (2"<<n<<"-1)) is "<<calcSeriesSum(n);
   return 0;
}

出力


Sum of the series 1 + (1+3) + (1+3+5) + (1+3+5+7) + ... + (1+3+5+7+ ... + (2*12-1)) is 650


このアプローチは、2つのネストされたループを使用するため、効果的ではありません。

より効率的なアプローチは、一般式を数学的に見つけて級数の合計を見つけることです。

n個の奇数の合計

=(1)+(1 + 3)+(1 + 3 + 5)+…。 (1 + 3 + 5 + ... + 2n-1)

=n2

まず、シリーズの個々の要素を表す最初のn個の奇数の合計を見てみましょう。

シリーズの合計、

sum = (1) + (1+3) + (1+3+5) + … + (1+3+5+ … + 2n-1)
sum = ∑ (1+3+5+ … + 2n-1)
sum = ∑ n2
sum = [n * (n+1) * (2*n -1)]/6

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

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

出力

Sum of the series 1 + (1+3) + (1+3+5) + (1+3+5+7) + ... + (1+3+5+7+ ... + (2*9-1)) is 285

  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