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

シリーズのn番目の項を見つけるためのC++プログラム122 3 3 3 4


この問題では、整数Nが与えられます。タスクは、級数1 2 2 3 334のn番目の項を見つけることです…。

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

入力

N = 6

出力

3

説明

n番目の項までのシリーズは1、2、2、3、3、3、...

ソリューションアプローチ

この問題を解決する簡単な方法は、ネストされたループを使用することです。外側のforループは1からnです。そして、内側のループは1からi(外側のループのイテレーター)までです。内側のループの反復ごとに、系列の要素の数をカウントし、カウントがnに等しい場合はiの値を返します。

問題を解決するためのより効率的なアプローチは、パターン位置を使用することです。シーケンスの要素は、シリーズ内の位置が-

です。
Element 1: position 1
Element 2: position 2, 3
Element 3: position 4, 5, 6
Element 4: position 7, 8, 9, 10

これらの値については、シリーズ内の要素の最後の位置である

を使用してシリーズを作成できます。
1, 3, 6, 10, 15, 21, 28, ….

xは用語で表示され、1 + 2 + 3 +…+(x-2)+(x-1)...

これは、n =x *(x-1)/ 2

として一般化できます。

2n =x 2 --x => x 2 --x --2n =0

二次方程式を解くための公式を使用して方程式を解きます。

$$ x =1/2 *(1+ \ sqrt {1 + 8 * n)} $$

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

#include <bits/stdc++.h>
using namespace std;
int findNthTerm(int n) {
   int x = (((1) + (double)sqrt(1 + (8 * n))) / 2);
   return x;
}
int main(){
   int n = 12;
   cout<<"The series is 1, 2, 2, 3, 3, 3, 4, 4, ...\n";
   cout<<n<<"th term of the series is "<<findNthTerm(n);
   return 0;
}

出力

The series is 1, 2, 2, 3, 3, 3, 4, 4, ...
12th term of the series is 5

  1. シリーズ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の交互になります。したがって、一

  2. シリーズ3、5、33、35、53のN番目の項をC++で検索するプログラム

    このチュートリアルでは、シリーズ3、5、33、35、53のN番目の用語を見つけるプログラムについて説明します… このために、番号が提供されます。私たちの仕事は、その特定の位置で特定のシリーズの用語を見つけることです。 例 #include <bits/stdc++.h> using namespace std; //finding the nth term in the series int printNthElement(int n){    int arr[n + 1];    arr[1] = 3;    arr[