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