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

数列 1、6、18、40、75、… のN番目の項を求めるC++プログラム

この問題では、整数 N が与えられます。求めたいのは、次の数列のN番目の項です。

1, 6, 18, 40, 75, …

まず、具体例を使って問題を確認してみましょう。

入力

N = 4

出力

40

説明

4番目の項は、次のように計算できます。

(4 × 4 × 5) / 2 = 40

解法アプローチ

この問題を解く最もシンプルな方法は、数列の一般項(N番目の項を表す公式)を利用することです。この数列は次の公式で表せます。

N番目の項 = ( N × N × (N + 1) ) / 2

この公式に各項の値を代入して検証してみると、

  • N = 1 のとき:(1 × 1 × 2) / 2 = 1
  • N = 2 のとき:(2 × 2 × 3) / 2 = 6
  • N = 3 のとき:(3 × 3 × 4) / 2 = 18
  • N = 4 のとき:(4 × 4 × 5) / 2 = 40
  • N = 5 のとき:(5 × 5 × 6) / 2 = 75

となり、与えられた数列と完全に一致します。この公式を使えば、ループ処理を行わずにO(1)の計算量で任意のN番目の項を直接求めることができます。

実装例

それでは、この解法がどのように動作するかを示すC++プログラムを見てみましょう。

#include <iostream>
using namespace std;

int calcNthTerm(int N) {
    return ((N * N * (N + 1)) / 2);
}

int main() {
    int N = 5;
    cout << N << "番目の項の値は " << calcNthTerm(N);
    return 0;
}

出力

5番目の項の値は 75

まとめ

本記事では、数列 1, 6, 18, 40, 75, … のN番目の項を求める方法を解説しました。ポイントは、数列のパターンから一般項「N × N × (N + 1) / 2」を導き出すことです。この公式を用いれば、計算量O(1)で効率的に答えを求められるため、Nが非常に大きな値であっても高速に処理できます。

  1. 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

  2. C++で指定された数列のN番目の項を求めるプログラム

    この問題では、数値 N が与えられ、指定された数列のN番目の項を求めるプログラムをC++で作成します。 問題の説明 次の数列のN番目の項を求めます。 1, 1, 2, 3, 4, 9, 8, 27, 16, 81, 32, 243, 64, 729, 128, 2187, 256, ... (N項まで) まずは、この数列の一般項(規則性)を見つけるところから始めます。 具体例で問題を確認してみましょう。 例1 入力: N = 6 出力: 9 例2 入力: N = 13 出力: 64 解法のアプローチ この問題を解くには、まず数列を注意深く観察する必要があります。この数列は複数の規則が混ざった「