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

C/C++プログラムで中点を繰り返し結合してできる正方形の面積を求める方法

問題の概要

一辺の長さが「a」の正方形があるとします。この正方形の各辺の中点を順に結ぶことで、内側に新しい正方形を作ります。さらに、その新しい正方形に対しても同じ操作を行い、これをn回繰り返すとしましょう。本記事では、n回目に形成される正方形の面積を求める方法を解説します。

数学的な導出

まず、最も外側にある正方形の一辺は「a」なので、その面積は次のように表されます。

面積 = a²

次に、ピタゴラスの定理を利用すると、2番目の正方形の面積を求めることができます。各辺の中点を結んでできる新しい正方形の一辺は、元の正方形の一辺の半分を2つの直角辺とする直角三角形の斜辺に相当します。したがって、新しい一辺の長さは √(a²/2) となり、2番目の正方形の面積は以下のようになります。

面積 = a² / 2

同じ考え方を適用すると、3番目の正方形の面積は次の通りです。

面積 = a² / 4

この規則性から、n番目の正方形の面積は一般的に次の式で表せることが分かります。

n番目の正方形の面積 = a² / 2(n-1)

C++による実装例

#include <iostream>
#include <cmath>
using namespace std;
float area(float a, float n) {
    if (a < 0 ) //値が負の場合は無効
       return -1;
    float area = (a*a) / pow(2, n-1);
    return area;
}
int main() {
    float a = 20.0, n = 10.0;
    cout << "Area : " << area(a, n);
}

コードのポイント

  • 関数areaでは、入力された辺の長さaが負の場合に無効な値として-1を返し、エラー処理を行っています。
  • 面積の計算には、一般式「a² / 2^(n-1)」を使用しています。pow(2, n-1)によって2の(n-1)乗を求めています。
  • main関数では、一辺20.0、繰り返し回数10回という条件で計算を実行しています。

実行結果

Area : 0.78125

このように、一辺20の正方形から中点を結ぶ操作を10回繰り返すと、最終的に得られる正方形の面積は約0.78125になります。中点を結ぶたびに面積が半分になるというシンプルな規則性を利用することで、任意の回数後の面積を効率的に計算できます。

  1. 【C言語】直角三角形の内接円の面積を求めるプログラム

    内接円の面積を求める考え方直角三角形の内接円(3つの辺すべてに接し、三角形の内部に位置する円)の面積を求めるには、まず内接円の半径を計算する必要があります。直角三角形の場合、内接円の半径は次のシンプルな公式で求められます。r = (P + B − H) / 2ここで、P は垂直辺(高さ)、B は底辺、H は斜辺をそれぞれ表します。内接円の面積の公式円の面積は一般に次の公式で表されます。面積 = π × r2ここで、π は 22/7 または 3.14、r は円の半径です。先ほどの半径の公式を代入すると、内接円の面積は次の式で求められます。面積 = π × ((P + B − H) / 2)2C言

  2. 正四面体の表面積と体積を計算するCプログラム

    四面体とは、底面が三角形であるピラミッド(角錐)のことです。つまり、底面が三角形であり、すべての側面もまた三角形で構成されています。3つの側面の三角形はすべて1点に収束します。下図を参照してください。コードのロジック四面体の面積と体積を求めるこのプログラムでは、mathライブラリの sqrt 関数と pow 関数を使用して、数値の平方根や累乗を計算しています。面積の計算では、浮動小数点型の変数を用意し、式「(sqrt(3) * a * a)」の計算結果を代入します。これは一辺の長さから正四面体の表面積を求める公式です。同様に、体積については別の変数を用意し、式「(a*a*a / (6*(sqr