級数1*2 * 3 + 2 * 3 * 4 + 3 * 4 *5+の合計を求めるプログラム。 。 。 + C++ではn*(n + 1)*(n + 2)
この問題では、級数のn番目の項を定義する数nが与えられます。私たちのタスクは、シリーズ1 * 2 * 3 + 2 * 3 * 4 + 3 * 4 *5+の合計を見つけるプログラムを作成することです。 。 。 + C++ではn*(n + 1)*(n + 2) 。
問題の説明 −ここで、与えられた級数のn項までの合計が1 * 2 * 3 + 2 * 3 * 4 + 3 * 4 *5+であることがわかります。 。 。 + n *(n + 1)*(n + 2)。これは、n *(n + 1)*(n + 2)の合計としてデコードできます。
問題を理解するために例を見てみましょう
入力
n = 5
出力
420
説明
1*2*3 + 2*3*4 + 3*4*5 + 4*5*6 + 5*6*7 = 6 + 24 + 60 + 120 + 210 = 420
ソリューションアプローチ
この問題を解決する簡単な方法は、1からnまでのループを使用して、各反復で積を見つけ、それをsumVarに追加することです。ループが終了したら、sumVarを返します。
アルゴリズム
- ステップ1 −ループi=1からn。
- ステップ1.1 − sumVar、sumVar + =i *(i + 1)*(i + 2)を更新
- ステップ2 −sumVarを印刷します。
ソリューションの動作を説明するプログラム
例
#include <iostream> using namespace std; int calcSeriesSum(int n){ int sumVar = 0; for(int i = 1; i <= n; i++) sumVar = sumVar + ( (i)*(i+1)*(i+2) ); return sumVar; } int main(){ int n = 7; cout<<"The sum of series till "<<n<<" is "<<calcSeriesSum(n); return 0; }
出力
The sum of series till 7 is 1260
このアプローチは、Nのオーダーの複雑な時間を要するため、効率的ではありません。
別のアプローチ 級数の合計に数式を使用しています。問題の説明で説明したように、この級数は(n)*(n + 1)*(n + 2)の合計と言えます。
この情報を使用して、合計の一般式を作成しましょう。
$ Sum =\ sum _ {\ square =1} ^ \ square \ blacksquare((\ square)\ ast(\ square + 1)\ ast(\ square + 2))$
$ =\ sum \ lbrace {(n ^ 2 + n)(n + 2)} \ rbrace $
$ =\ sum \ lbrace {n ^ 3 + n ^ 2 + 2n ^ 2 + 2n} \ rbrace $
$ =\ sum \ lbrace {n ^ 3 + 3n ^ 2 + 2n} \ rbrace $
$ =\ sum _ {\ square =1} ^ \ square \ blacksquare \ square ^ 3 + 3 \ sum _ {\ square =1} ^ \ square \ blacksquare \ square ^ 2 + 2 \ sum _ {\ square =1} ^ \ square \ blacksquare \ square ^ \ blacksquare $
ここで、合計の一般式を使用します。
$ \ sum _ {\ square =1} ^ \ square \ blacksquare \ square ^ 3 =\ frac {(\ square \ ast(\ square + 1))^ 2} {2} $
$ \ sum _ {\ square =1} ^ \ square \ blacksquare \ square ^ 2 =\ frac {(\ square \ ast(\ square + 1)\ ast(2 \ square + 1))^ \ blacksquare} {6} $
$ \ sum _ {\ square =1} ^ \ square \ blacksquare \ square ^ \ blacksquare =\ frac {(\ square \ ast(\ square + 1)^ \ blacksquare} {2} $
これらすべてを合計式に追加すると、
$ Sum =\ frac {(\ square \ ast(\ square + 1))^ 2} {2 ^ 2} + \ frac {3(\ square \ ast(\ square + 1)\ ast(2 \ square + 1 ))^ \ blacksquare} {6} + \ frac {2(\ square \ ast(\ square + 1))^ \ blacksquare} {2} $
$ =\ frac {(\ square \ ast(\ square + 1))^ \ blacksquare} {2} [((n *(n + 1))/ 2)+(3(2n + 1)/ 3)+ 2] $
$ =\ frac {(\ square \ ast(\ square + 1))^ \ blacksquare} {4} [n ^ 2 + n + 4n + 2 + 4] $
$ =\ frac {(\ square \ ast(\ square + 1))^ \ blacksquare} {4} [n ^ 2 + 5n + 6] $
$ =\ frac {(\ square \ ast(\ square + 1))^ \ blacksquare} {4} [(n + 2)(n + 3)] $
=¼[(n)*(n + 1)*(n + 2)*(n + 3)]
n番目の項までの級数は次の式を使用して計算されます
¼[ (n)*(n+1)*(n+2)*(n+3) ]
ソリューションの動作を説明するプログラム
例
#include <iostream> using namespace std; int calcSeriesSum(int n){ int sumVar = 0; sumVar = ( (n)*(n + 1)*(n + 2)*(n + 3)/4 ); return sumVar; } int main(){ int n = 7; cout<<"The sum of series till "<<n<<" is "<<calcSeriesSum(n); return 0; }
出力
The sum of series till 7 is 1260
-
シリーズ1、2、11、12、21のN番目の項をC++で検索するプログラム
この問題では、番号Nが与えられます。私たちのタスクは、C++でシリーズ1、2、11、12、21…のN番目の項を見つけるプログラムを作成することです。 問題の説明 級数のN番目の項を見つけるには- 1、2、11、12、21、22、111、112、.... Nterms シリーズの総称を見つけます。 問題を理解するために例を見てみましょう 入力 N =8 出力 112 ソリューションアプローチ 一般的な用語を導き出すには、シリーズを注意深く観察する必要があります。このシリーズでは、値に1と2しかないことがわかります。そして、すべての用語は1と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