C++でn番目の五角数を求めるプログラムの書き方
はじめに
本記事では、C++を使ってn番目の五角数(Pentagonal Number)を求めるプログラムの作成方法を解説します。
五角数とは、点や小石を正五角形の形に並べたときに表される数のことです。図形的なイメージを掴みたい場合は、Wikipediaなどの解説記事を参考にすると理解が深まります。
五角数とは
五角数は、以下の漸化式・公式によって定義されます。
n番目の五角数 = (3 × n² − n) ÷ 2
この公式に従うと、五角数は次のような数列になります。
1, 5, 12, 22, 35, 51, 70, 92 ...
アルゴリズム
- 整数 n を初期化します。
- 上記の公式を使って n 番目の五角数を計算します。
- 計算結果を出力します。
C++での実装例
以下は、上記アルゴリズムをC++で実装したサンプルコードです。
#include<bits/stdc++.h>
using namespace std;
int getNthPentagonalNumber(int n) {
return (3 * n * n - n) / 2;
}
int main() {
int n = 7;
cout << getNthPentagonalNumber(n) << endl;
return 0;
}実行結果
上記のコードを実行すると、次の出力が得られます。この例では7番目の五角数を求めています。
70
まとめ
五角数は単純な数式で表せるため、実装も非常にシンプルです。公式 (3n² − n) / 2 を覚えておけば、任意のn番目の五角数をO(1)の計算量で求められます。三角数や六角数など、他の多角数についても同様のアプローチで計算できるので、興味があればぜひ試してみてください。
-
C++でN番目の五角錐数を求める方法を解説
五角錐数とは五角錐数(Pentagonal Pyramidal Number)とは、五角形を底面として積み上げたピラミッドに含まれる物体の総数を表す数です。まず、下図のようにいくつかの五角数を確認してみましょう。1からNまでの五角数の総和は、N番目の五角錐数と一致します。この記事では、N番目の五角錐数を求める方法について詳しく解説します。入力:N = 4出力:40説明:最初の4つの五角数 1, 5, 12, 22 の合計は 40 です。入力:N = 6出力:126説明:最初の6つの五角数 1, 5, 12, 22, 35, 51 の合計は 126 です。解法へのアプローチシンプルなアプローチ上
-
C++で五胞体数(ペンタトープ数)を求める方法
五胞体数とは? 五胞体数(ペンタトープ数)は、パスカルの三角形の第5の対角線上に現れる数列として知られています。この数列を定義するには、パスカルの三角形に少なくとも5つの数が必要となるため、数列の最初の数はパスカルの三角形の第4行である 1 4 6 4 1 から始まります。 本チュートリアルでは、n番目の五胞体数を求める方法を解説します。まずは具体的な例を見てみましょう。 入力 : 1出力 : 1入力 : 4出力 : 35 以下の図から出力を確認できます。 この問題は数列に関するものなので、解法ではまず数列のパターンを見つけることから始めます。 解法のアプローチ このプログラムでは、数列の