数列1, 3, 6, 10, 15, 21, 28…のn番目の項を求めるC++プログラム
この問題では、整数Nが与えられます。求めるのは、数列「1, 3, 6, 10, 15, 21, 28 …」のn番目の項です。
例を使って問題を理解しましょう。
入力
N = 7
出力
28
説明
数列は 1, 3, 6, 10, 15, 21, 28 … と続いており、7番目の項は28になります。
解法アプローチ
この問題へのシンプルなアプローチは、数列の一般項を見つけることです。数列を観察すると、i番目の数が「(i−1)番目の項 + i」という規則で表されていることがわかります。
実は、このような数は三角数(triangular number)と呼ばれます。三角数とは、1からnまでの自然数を順に足し合わせた総和で表される数のことです。
なお、数学的には n番目の三角数は公式 n × (n + 1) / 2 を使えばO(1)で直接求めることも可能です。
ここでは、nまでループを回し、各反復で現在のインデックスの値を累積値に加算していく方法で解いていきます。最後にN番目の項の値を返します。
ソリューションの動作を示すプログラム:
例
#include <iostream>
using namespace std;
int findNthTerm(int N) {
int NthTerm = 0;
for (int i = 1; i <= N; i++)
NthTerm = NthTerm + i;
return NthTerm;
}
int main() {
int N = 8;
cout<<"The "<<N<<"th term of the series is "<<findNthTerm(N);
return 0;
}
出力
The 8th term of the series is 36
-
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」のみで構成されている。 各項の末尾の
-
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