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

C++で正五角形の対角線の長さを求める方法

正五角形の対角線の公式

正五角形の対角線の長さは、1辺の長さと黄金比を用いた次の公式から求めることができます。

対角線 = (1 + √5) × 辺の長さ ÷ 2

ここで、√5(ルート5)は約2.236です。したがって、実際の計算では「(1 + 2.24) × 辺 ÷ 2」という近似式を使うことができます。

C++での実装例

以下は、辺の長さから正五角形の対角線を計算するC++プログラムの実装例です。

#include <iostream>
using namespace std;
int main(){
    float side = 5;
    if (side < 0)
        return -1;
    float diagonal = (1+2.24) *(side/2);
    cout << "The diagonal of the regular pentagon = "<<diagonal<< endl;
    return 0;
}

出力結果

上記のコードを実行すると、次の出力が得られます。

The diagonal of the regular pentagon = 8.1

コードの解説

このプログラムでは、まず入力された辺の長さが負の値でないかを確認しています。負の値の場合は正五角形が成立しないため、プログラムを終了します。

その後、公式「(1 + √5) × 辺 ÷ 2」に基づいて対角線の長さを計算し、結果を標準出力に表示します。この例では辺の長さが5なので、(3.24) × 2.5 = 8.1 という結果になります。

ちなみに、黄金比 φ = (1 + √5) ÷ 2 ≒ 1.618 は、正五角形における「対角線と1辺の長さの比」としてもよく知られています。つまり、対角線の長さは常に辺の長さの約1.618倍になるという性質があります。

  1. C++で行列の上三角と下三角を入れ替える方法

    このチュートリアルでは、C++のコードを使って3×3の正方行列(対角配列)の上三角部分を下三角部分と入れ替える方法を解説します。この操作は、いわゆる「行列の転置」と同じ処理であり、対角配列を入力として与えたとき、期待される結果は以下のようになります。具体的な手順は、以下のアルゴリズムにまとめられます。アルゴリズムステップ1:対角配列を入力する ステップ2:Swap()メソッドに渡す ステップ3:外側のループを3回まで繰り返す ステップ4:内側のループで j = i + 1 から3まで増加させる ステップ5:配列の値を一時変数tempに退避させる ステップ6:arr[i][j] = arr[j]

  2. C++で対角行列・スカラー行列を判定するプログラムの書き方

    行列 M[r][c] が与えられたとき、「r」は行数、「c」は列数を表し、r = c のとき正方行列となります。本記事では、与えられた正方行列が対角行列であるか、スカラー行列であるかを判定し、該当する場合には「yes」を出力する方法を解説します。 対角行列とは 正方行列 m[][] が対角行列であるのは、主対角線以外の要素がすべてゼロである場合、かつその場合に限ります。 下図のように、赤色で示された要素が主対角成分(非ゼロ)であり、それ以外の要素はすべてゼロになっているため、この行列は対角行列です。 入出力例 Input: m[3][3] = { {7, 0, 0}, {0, 8, 0}