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

数列 7, 15, 32, … のn番目の項を求めるC++プログラム


この問題では、整数 N が与えられ、数列「7, 15, 32, …」のn番目の項を求めることが課題となります。

問題を理解するための例

入力

N = 6

出力

281

説明

n番目の項までの数列は「7, 15, 32, 67, 138, 281」となります。

解法アプローチ

この問題を解く鍵は、数列の規則性を読み解くことにあります。この数列は、複数の規則が組み合わさった複合的な数列であることがわかります。

まず、隣接する項同士の差を調べてみましょう。

T(2) - T(1) = 15 - 7 = 8
T(3) - T(2) = 32 - 15 = 17

ここから、各項の間には次のような漸化式の関係が成り立っていることが導き出せます。

T(2) = 2*T(1) + 1
T(3) = 2*T(2) + 2

T(n) = 2*T(n-1) + (n-1)

つまり、n番目の項の値は、ひとつ前の項を使って求められるということです。この性質を利用し、1からnまでループ処理を行うことで、数列の各項の値を順番に計算していきます。

解法の動作を示すプログラム

#include <iostream>
using namespace std;
int findNthTerm(int n) {
    if (n == 1)
        return 7;
    int termN = 7;
    for (int i = 2; i <= n; i++)
        termN = 2*termN + (i - 1);
    return termN;
}
int main(){
    int n = 12;
    cout<<"The series is 7, 15, 32, 67...\n";
    cout<<n<<"th term of the series is "<<findNthTerm(n);
    return 0;
}

出力

The series is 7, 15, 32, 67...
12th term of the series is 18419

  1. C++で数列a、b、b、c、c、cのN番目の項を求めるプログラム

    この問題では、数Nが与えられます。私たちのタスクは、C++で数列a、b、b、c、c、c…のN番目の項を求めるプログラムを作成することです。問題の説明次の数列のN番目の項を求めます。a、b、b、c、c、c、d、d、d、d、....(全N項)そのためには、この数列の一般項を見つける必要があります。具体例を使って問題を理解しましょう。入力:N = 7出力:d解法アプローチ数列の一般項を求めるには、まず数列を注意深く観察する必要があります。この数列は「a」が1個、「b」が2個、「c」が3個、「d」が4個…というように、同じ文字が増えていきながら繰り返される構成になっています。これは初項aと公差dがどち

  2. 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」のみで構成されている。 各項の末尾の