数列 5, 13, 25, 41, 61, … の第N項を求めるC++プログラム
問題の概要
この問題では、整数 N が与えられます。私たちのタスクは、数列「5, 13, 25, 41, 61, …」の第 N 項を求めるプログラムを作成することです。
問題を理解するための例
入力
N = 5
出力
61
説明
数列は 5, 13, 25, 41, 61 … と続いていきます。5 番目の項は 61 です。
解法アプローチ
この問題を解くシンプルな方法は、数列の第 N 項を表す一般式を利用することです。
数列を観察すると、隣接する項の差が 8, 12, 16, 20 と 4 ずつ増加しています。これは二次数列の典型的な特徴であり、第 N 項は次の一般式で表されます。
N番目の項 = (N × N) + ((N + 1) × (N + 1))
つまり、「N の 2 乗」と「(N + 1) の 2 乗」を足し合わせた値が、そのまま第 N 項になります。実際に検証してみましょう。
- N = 1 のとき:1² + 2² = 1 + 4 = 5
- N = 2 のとき:2² + 3² = 4 + 9 = 13
- N = 3 のとき:3² + 4² = 9 + 16 = 25
このように、一般式が数列を正しく表していることが確認できます。この式を使えば、ループで項を順に計算する必要がなく、O(1) の定数時間で第 N 項を求められます。
解法の動作を示すプログラム
例
#include <iostream>
using namespace std;
int calcNthTerm(int N) {
return ( ( (N + 1)*( N + 1) ) + (N*N) ) ;
}
int main() {
int N = 7;
cout<<N<<"番目の項は "<<calcNthTerm(N);
return 0;
}
出力
7番目の項は 113
-
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
-
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 解法のアプローチ この問題を解くには、まず数列を注意深く観察する必要があります。この数列は複数の規則が混ざった「