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

C++で数列 3, 5, 21, 51, 95, … のN番目の項を求めるプログラム

この記事では、数値Nが与えられたときに、C++を使って数列 3, 5, 21, 51, 95, … のN番目の項を求めるプログラムの作成方法を解説します。

問題の説明

次の数列のN番目の項を求めるのが課題です。

3, 5, 21, 51, 95, 153, …(N項まで)

この数列は各項の増加パターンから、二次方程式(二次関数)に従うことがわかります。したがって、まず数列の一般項の公式を導き出す必要があります。

入出力例

入力: N = 6
出力: 153

解決アプローチ

この問題を解くには、数列の一般項(第n項)の公式を求めます。この数列の一般項は、以下の二次式で表されます。

Tn = 7 × n² − 19 × n + 15

公式の検証

実際にいくつかの項に代入して確認してみましょう。

  • n = 1 のとき: 7×1 − 19×1 + 15 = 3
  • n = 2 のとき: 7×4 − 19×2 + 15 = 5
  • n = 3 のとき: 7×9 − 19×3 + 15 = 21
  • n = 6 のとき: 7×36 − 19×6 + 15 = 153

すべての項で一致していることから、この公式が正しいことが確認できます。

C++での実装例

#include <iostream>
using namespace std;
int findNTerm(int N) {
    int nthTerm = ( (7*(N*N)) - (19*N) + 15 );
    return nthTerm;
}
int main() {
    int N = 7;
    cout<<N<<"th term of the series is "<<findNTerm(N);
    return 0;
}

出力結果

7th term of the series is 225

コードの解説

関数 findNTerm() では、引数として受け取った N を一般項の公式 Tn = 7n² − 19n + 15 に代入し、計算結果を返します。main() 関数では N = 7 を設定し、その結果を出力しています。

このアプローチの大きな利点は、ループを使って各項を順番に計算する必要がない点です。公式に直接代入するだけでよいため、任意の N に対して O(1) の計算量でN番目の項を求めることができ、非常に効率的です。

  1. C++で数列 1, 2, 11, 12, 21… のN番目の項を求めるプログラム

    この問題では、数値 N が与えられ、C++を用いて数列 1, 2, 11, 12, 21… のN番目の項を求めるプログラムを作成します。 問題の概要 次の数列のN番目の項を求めます。 1, 2, 11, 12, 21, 22, 111, 112, …(第N項まで) この数列には一定のパターンが隠されており、それをもとに一般項を導き出す必要があります。 具体例を見てみましょう。 入力 N = 8 出力 112 解法のアプローチ 一般項を導くためには、まず数列を注意深く観察することが重要です。この数列には次のような特徴があります。 すべての項が「1」と「2」のみで構成されている。 各項の末尾の

  2. C++で数列3、5、33、35、53…のN番目の項を求めるプログラム

    はじめにこのチュートリアルでは、数列「3、5、33、35、53…」のN番目の項を求めるC++プログラムについて解説します。この問題では、ある整数nが与えられます。私たちのタスクは、その数列におけるn番目の項を特定することです。数列の規則性まず、この数列がどのように構成されているのかを見てみましょう。1番目の項:32番目の項:53番目の項:33(1番目の項に「3」を付加)4番目の項:35(1番目の項に「5」を付加)5番目の項:53(2番目の項に「3」を付加)6番目の項:55(2番目の項に「5」を付加)つまり、奇数番目の項は「i/2 番目の項の末尾に3を付けた数」、偶数番目の項は「(i/2 − 1