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

C++プログラムで正六角形の対角線の長さを求める方法

このチュートリアルでは、C++を使って正六角形の対角線の長さを求める方法について解説します。

与えられた一辺の長さから、正六角形の対角線の長さを計算します。正六角形の対角線の長さは 1.73 × s という式で求められます。ここで、s は六角形の一辺の長さです。

数式の背景

正六角形の対角線(隣り合わない頂点を結ぶ線分)の長さは、一辺の長さの √3 倍になります。√3 ≈ 1.732 であるため、このプログラムでは近似的に 1.73 を係数として使用しています。

サンプルコード

それでは、実際のコードを見てみましょう。

#include <bits/stdc++.h>
using namespace std;
float hexagonDiagonal(float s) {
    if (s < 0) {
        return -1;
    }
    return 1.73 * s;
}
int main() {
    float s = 7;
    cout << hexagonDiagonal(s) << endl;
    return 0;
}

実行結果

上記のコードを実行すると、以下のような出力が得られます。

12.11

コードの解説

hexagonDiagonal 関数は、引数として受け取った一辺の長さ s が負の値の場合に -1 を返すことで、無効な入力に対応しています。それ以外の場合は、1.73 × s を計算して対角線の長さを返します。

main 関数では s = 7 を設定して関数を呼び出し、結果を標準出力に表示しています。7 × 1.73 = 12.11 となるため、正しく計算できていることが確認できます。

まとめ

このチュートリアルでは、正六角形の対角線の長さを一辺の長さから求めるシンプルなプログラムを紹介しました。幾何学的な性質(対角線 = 一辺 × √3)を式に落とし込むことで、容易に実装できることがわかります。

本チュートリアルについてご不明な点がある場合は、コメント欄にてお気軽にお知らせください。

  1. C++プログラムにおける二分探索(バイナリサーチ)の基本と実装

    二分探索(バイナリサーチ)とは二分探索は「半区間探索」「対数探索」「バイナリチョップ」とも呼ばれる検索アルゴリズムで、ソート済みの配列の中から目的の値が存在する位置を効率的に見つけ出します。基本的な仕組みは非常にシンプルです。まず、探したい値(ターゲット値)を配列の中央の要素と比較します。一致しなかった場合は、ターゲット値が存在し得ない半分を丸ごと排除し、残りの半分に対して同様の比較を繰り返します。この「中央との比較」と「範囲の絞り込み」を続け、ターゲット値が見つかるか、検索範囲が空になる(=配列にその値が存在しない)かのどちらかで処理が終了します。アイデア自体は簡単ですが、正しく実装するには

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

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