マッチ棒で作る三角ピラミッドに必要な本数を計算するC/C++プログラム
この記事では、下図のようなピラミッド状の三角形を作るために必要なマッチ棒の本数を求める方法を解説します。ピラミッドの底辺のサイズが与えられたとき、そのサイズに応じて必要なマッチ棒の総本数を計算します。
例えば、底辺のサイズが1の場合は3本、底辺が2の場合は9本、底辺が3の場合は18本のマッチ棒が必要になります。
必要なマッチ棒の本数を求める公式
この問題を解くには、以下の公式を使用します。
必要なマッチ棒の本数 = 3 × x × (x + 1) ÷ 2
ここで、x はピラミッドの底辺のサイズです。この公式を使えば、ループで一つずつ数え上げることなく、O(1)の計算量で即座に答えを求められます。
C++での実装例
#include <iostream>
using namespace std;
int main() {
int x;
cout << "底辺のサイズを入力してください: ";
cin >> x;
// 公式: 3 * x * (x + 1) / 2 を使って本数を計算
int count = 3 * x * (x + 1) / 2;
cout << "必要なマッチ棒の本数: " << count;
return 0;
}実行結果
底辺のサイズを入力してください: 5 必要なマッチ棒の本数: 45
プログラムの解説
まず、ユーザーから底辺のサイズ x を標準入力で受け取ります。次に、公式「3 × x × (x + 1) ÷ 2」に基づいて必要なマッチ棒の総本数を計算し、結果を出力します。
上記の実行例では、底辺のサイズとして5を入力したため、3 × 5 × 6 ÷ 2 = 45 という計算が行われ、「45」という結果が出力されています。
なお、大きな値を扱う場合は int 型のオーバーフローに注意してください。必要に応じて long long 型を使用することをおすすめします。
-
C++で16進数を10進数に変換するプログラムの作成方法
16進数が入力として与えられたとき、その16進数を10進数に変換するのが本記事のテーマです。 コンピュータにおける16進数は基数16で表現され、10進数は基数10で表現されます。10進数では0〜9の数字のみを使用しますが、16進数では0〜15までの値を扱うことができ、10以上の値はそれぞれA(10)、B(11)、C(12)、D(13)、E(14)、F(15)という英字で表されます。 16進数から10進数への変換手順 16進数を10進数に変換するには、以下の手順に従います。 右端の桁から順に数字を取り出し、0から始まるべき乗を掛けていきます。指数は「桁数 − 1」になるまで1ずつ増やします。
-
マッチ棒ピラミッドに必要な本数を求めるPythonプログラム
この記事では、以下の問題文に対する解決策について学んでいきます。 問題文 ある整数 X が与えられます。X はマッチ棒で作るピラミッドの段数を表しています。X 段のマッチ棒ピラミッドを完成させるために必要な、マッチ棒の総本数を求めて表示してください。 考え方 マッチ棒で正三角形を組み上げていく場合、1辺に n 本のマッチ棒を使用するとき、必要なマッチ棒の総数は「3 × n × (n + 1) ÷ 2」で表されます。この公式を利用することで、x 段のピラミッド全体に必要なマッチ棒の総本数を簡単に計算することができます。 実装例 # 関数の定義 def numberOfSticks(x):