C++で正七角形の対角線の長さを求める方法
このチュートリアルでは、C++を使って正七角形の対角線の長さを求める方法を解説します。
正七角形の対角線の長さは、一辺の長さから簡単に計算できます。具体的には、対角線の長さは 1.802 × s で表されます。ここで、s は正七角形の一辺の長さです。
計算式の背景
この係数 1.802 は、正七角形の幾何学的な性質から導かれる定数で、厳密には 2cos(π/7) ≒ 1.80194 に相当します。実用上は 1.802 を使えば十分な精度で対角線の長さを求めることができます。
サンプルコード
それでは、実際のコードを見てみましょう。
#include <bits/stdc++.h>
using namespace std;
float heptagonDiagonal(float s) {
if (s < 0) {
return -1;
}
return 1.802 * s;
}
int main() {
float s = 7;
cout << heptagonDiagonal(s) << endl;
return 0;
}
実行結果
上記のコードを実行すると、次の出力が得られます。
12.614
コードの解説
heptagonDiagonal 関数は、引数として受け取った一辺の長さ s が負の値の場合はエラーを示す -1 を返します。それ以外の場合は、1.802 を掛けた値を対角線の長さとして返します。
main 関数では、一辺の長さを 7 として関数を呼び出し、その結果(7 × 1.802 = 12.614)を標準出力に表示しています。
まとめ
このように、正七角形の対角線の長さは「一辺の長さ × 1.802」というシンプルな式で求めることができます。入力値の妥当性チェック(負の値の除外)も忘れずに行うことで、より堅牢なプログラムになります。
本チュートリアルについて質問がある場合は、コメント欄でお気軽にお知らせください。
-
C++プログラムにおける二分探索(バイナリサーチ)の基本と実装
二分探索(バイナリサーチ)とは二分探索は「半区間探索」「対数探索」「バイナリチョップ」とも呼ばれる検索アルゴリズムで、ソート済みの配列の中から目的の値が存在する位置を効率的に見つけ出します。基本的な仕組みは非常にシンプルです。まず、探したい値(ターゲット値)を配列の中央の要素と比較します。一致しなかった場合は、ターゲット値が存在し得ない半分を丸ごと排除し、残りの半分に対して同様の比較を繰り返します。この「中央との比較」と「範囲の絞り込み」を続け、ターゲット値が見つかるか、検索範囲が空になる(=配列にその値が存在しない)かのどちらかで処理が終了します。アイデア自体は簡単ですが、正しく実装するには
-
C++で対角行列・スカラー行列を判定するプログラムの書き方
行列 M[r][c] が与えられたとき、「r」は行数、「c」は列数を表し、r = c のとき正方行列となります。本記事では、与えられた正方行列が対角行列であるか、スカラー行列であるかを判定し、該当する場合には「yes」を出力する方法を解説します。 対角行列とは 正方行列 m[][] が対角行列であるのは、主対角線以外の要素がすべてゼロである場合、かつその場合に限ります。 下図のように、赤色で示された要素が主対角成分(非ゼロ)であり、それ以外の要素はすべてゼロになっているため、この行列は対角行列です。 入出力例 Input: m[3][3] = { {7, 0, 0}, {0, 8, 0}