C言語で半円に内接する長方形に内接する円の面積を求める方法
問題の概要
本記事では、半円に内接する長方形の中にさらに円が内接するという入れ子構造の図形について、その内接円の面積をC言語で求める方法を解説します。
まず、それぞれの図形の性質をおさらいしておきましょう。
- 長方形に内接する円:円は長方形の長い辺(長さ)に接します。すなわち、内接円の直径は長方形の短い辺(幅)と一致します。
- 半円に内接する長方形:長方形は半円の弧上の2点に接するように配置されます。

面積を求める公式
半円の半径を R とすると、半円に内接する長方形の各辺の長さは次のように表せます。
- 長方形の長さ = √2 R
- 長方形の幅(b)= R / √2
長方形に内接できる最大の円の半径 r は、幅の半分に等しくなるため、次の式が成り立ちます。
r = b / 2 = R / (2√2)
これより、求める内接円の面積は次の公式で計算できます。
面積 = π × r2 = π × R2 / 8
C言語での実装例
それでは、実際にC言語のプログラムで確認してみましょう。ここでは、半径 a = 5 の半円を例に、内接円の面積を計算します。
#include <stdio.h>
int main() {
float a = 5;
float area = 3.14 * a * a / 8;
printf("半径 %f の半円に内接する長方形に内接する円の面積は %f です", a, area);
return 0;
}
実行結果
半径 5.000000 の半円に内接する長方形に内接する円の面積は 9.812500 です
このプログラムのように、公式「πR2 / 8」に半径の値を代入するだけで、半円 → 長方形 → 円という入れ子になった図形の内接円の面積を簡単に求めることができます。
-
正方形に内接する円の面積を求めるC言語プログラム
正方形に内接する円とは、正方形の四つの辺すべてに接する円のことです。このとき、内接円の直径は正方形の一辺の長さと等しくなります。内接円の面積は、次の公式で計算できます。面積 = (π / 4) × a × aここで「a」は正方形の一辺の長さです。これは、内接円の半径が「a / 2」になるため、一般的な円の面積の公式「π × r2」に代入すると「π × (a/2)2 = (π/4) × a2」となることに基づいています。プログラムのロジック内接円の面積は、公式「((π / 4) × a × a)」を用いて計算します。そのために、数学的に 22/7 すなわち 3.14 とされる円周率(π)の値をあ
-
C++で2つの長方形が覆う合計面積を求めるアルゴリズム
2次元平面上に置かれた2つの軸に平行な長方形について、それらが覆う領域の合計面積を求める問題を考えます。各長方形は、左下の頂点と右上の頂点の座標によって定義されます。下図のように、第1の長方形は左下 (A, B)・右上 (C, D)、第2の長方形は左下 (E, F)・右上 (G, H) として表されます。解き方のアプローチこの問題を解くための手順は以下の通りです。まず、2つの長方形が重なっているかどうかを判定します。C ≤ E、A ≥ G、B ≥ H、D ≤ F のいずれかが成り立つ場合、2つの長方形は重ならないため、それぞれの面積の和 (C − A) × (D − B) + (G − E)