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

C++で数列3、13、42、108、235…のn番目の項を求める方法

この問題では、整数 n が与えられます。求めるのは、数列「3, 13, 42, 108, 235, ...」の n番目の項です。

問題の理解

まず、具体的な例で問題を確認しましょう。

入力 : 5
出力 : 235

解法アプローチ

この数列は、「最初のn個の自然数の立方数の和」に「2 × n」を加えた値として表すことができます。

最初のn個の自然数の立方数の和は、有名な公式 (n × (n + 1) / 2)2 で求められます。したがって、この数列の第n項を求める公式は次のようになります。

第n項 = (n × (n + 1) / 2)2 + 2 × n

計算例(n = 5 の場合)

(5 * (5 + 1) / 2)2 + 2 * 5
= (15)2 + 10
= 225 + 10
= 235

このように、公式を使えばループ処理なしにO(1)で答えを求められるのがポイントです。

C++での実装例

上記の解法をC++で実装したプログラムがこちらです。

#include <iostream>
using namespace std;
int findNthTerm(int N)
{
   return ((N * (N + 1) / 2)*(N * (N + 1) / 2) ) + 2 * N;
}
int main()
{
   int N = 5;
   cout<<"数列の第"<<N<<"項の値は "<<findNthTerm(N);
   return 0;
}

出力結果

数列の第5項の値は 235
  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