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

正方形に内接する八角形の辺の長さを求めるC++プログラム

このチュートリアルでは、与えられた正方形に内接する八角形の辺の長さを求めるC++プログラムについて解説します。

問題設定としては、正方形の一辺の長さが与えられ、その中に内接できる最大の八角形の辺の長さを求めることが課題となります。

正方形と八角形の辺の長さの関係を幾何学的に導くことで、八角形の辺の長さを求める次の公式が得られます。

八角形の辺の長さ = 正方形の一辺 ÷ (√2 + 1)

この公式は、正方形に最大の正八角形を内接させたとき、八角形の各辺と正方形の各辺の間に生じる角度の関係から導出されます。正方形の一辺の長さを (√2 + 1) で割るだけで、八角形の一辺を簡単に求めることができます。

サンプルコード

#include <bits/stdc++.h>
using namespace std;
// 八角形の辺の長さを計算する関数
float calc_oside(float a) {
    if (a < 0)
        return -1;
    float s = a / (sqrt(2) + 1);
    return s;
}
int main() {
    float a = 41;
    cout << calc_oside(a) << endl;
    return 0;
}

出力

16.9828

コードの解説

calc_oside関数は、引数として受け取った正方形の一辺の長さが負の値の場合は-1を返し、有効な値であれば上記の公式に基づいて八角形の辺の長さを計算して返します。

main関数では、一辺の長さが41の正方形を例としてcalc_oside関数を呼び出し、その結果を標準出力に表示しています。実行すると「16.9828」という結果が得られ、これが一辺41の正方形に内接する最大の八角形の辺の長さとなります。

  1. C++で平行四辺形の面積を求めるプログラムの作成方法

    この記事では、平行四辺形の底辺と高さを表す2つの値が与えられたとき、C++を使ってその面積を求めるプログラムを作成する方法を解説します。 平行四辺形とは? 平行四辺形とは、4つの辺からなる閉じた図形であり、向かい合う2組の辺がそれぞれ長さが等しく、互いに平行になっている四角形のことです。 問題を理解するための具体例 入力 B = 20, H = 15 出力 300 説明 平行四辺形の面積 = 底辺 × 高さ = 20 × 15 = 300 解決アプローチ この問題を解くには、平行四辺形の面積を求める幾何学の公式を使用します。 面積 = 底辺 × 高さ つまり、与えられた底辺と高さを掛け合わせ

  2. C++で正方形の面積を求めるプログラムの書き方

    本記事では、正方形の一辺が与えられたときに、その一辺をもとに正方形の面積を計算して出力するC++プログラムを紹介します。 正方形とは 正方形とは、4つの辺と4つの角(すべて90度)を持つ2次元の平面図形であり、すべての辺の長さが等しいという特徴があります。言い換えれば、正方形とは「すべての辺の長さが等しい長方形」の一種であるとも言えます。 正方形のイメージは以下の通りです。 正方形の面積 = 一辺 × 一辺 入力例と出力例 入力:6 出力:36 一辺が6なので、出力は 6×6=36 となります。 入力:12 出力:144 アルゴリズム 処理の流れは以下のようになります。 関数 int m