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

C言語で正方形の辺の中点を繰り返し結んでできる正方形の面積を求める方法

正方形の面積は、その一辺の長さ同士の積で求められます。

ここで考えるのは、ある正方形の各辺の中点を順に結ぶと新たな正方形が現れ、それを指定された回数だけ繰り返していくという図形の問題です。

下の図は、正方形の辺の中点を結んで作られる内側の正方形を示したものです。

C言語で正方形の辺の中点を繰り返し結んでできる正方形の面積を求める方法

内側の正方形の辺の長さの導出

外側の正方形の一辺の長さを a とします。隣り合う2つの中点を結んだ線分は、底辺と高さがそれぞれ a/2 の直角二等辺三角形の斜辺になります。したがって、内側の正方形の辺の長さ L は次のように求められます。

L2 = (a/2)2 + (a/2)2
L2 = a2(1/4 + 1/4) = a2/2
L = a / √2

よって、2番目の正方形(内側の正方形)の面積は L2 = a2/2 となります。

さらにその内側にある3番目の正方形の面積は a2/4 です。

この規則から、隣り合う正方形の面積には次のような関係があることがわかります。

a2, a2/2, a2/4, a2/8, …

これは初項が a2、公比が 1/2 の等比数列です。つまり、中点を結ぶ操作を繰り返すたびに面積は半分になっていきます。

C言語での実装例

一辺の長さと繰り返し回数をもとに、math.h の pow 関数を使って目的の正方形の面積を計算するプログラムは次の通りです。

#include <stdio.h>
#include <math.h>
int main() {
    double L = 2, n = 10;
    double firstTerm = L * L;   // 初項:最初の正方形の面積
    double ratio = 1 / 2.0;     // 公比:1/2
    double area = firstTerm * pow(ratio, n);
    printf("The area of %.0lfth square is %lf", n, area);
    return 0;
}

実行結果

The area of 10th square is 0.003906

一辺 2 の正方形から出発すると、初項は 2 × 2 = 4 となります。公比 1/2 を 10 回掛けると、面積は 4 × (1/2)10 ≒ 0.003906 と計算され、実行結果と一致します。このように、等比数列の性質を利用すれば、何段階目の正方形の面積でも簡単に求められます。

  1. C++で正方形の面積を求めるプログラムの書き方

    本記事では、正方形の一辺が与えられたときに、その一辺をもとに正方形の面積を計算して出力するC++プログラムを紹介します。 正方形とは 正方形とは、4つの辺と4つの角(すべて90度)を持つ2次元の平面図形であり、すべての辺の長さが等しいという特徴があります。言い換えれば、正方形とは「すべての辺の長さが等しい長方形」の一種であるとも言えます。 正方形のイメージは以下の通りです。 正方形の面積 = 一辺 × 一辺 入力例と出力例 入力:6 出力:36 一辺が6なので、出力は 6×6=36 となります。 入力:12 出力:144 アルゴリズム 処理の流れは以下のようになります。 関数 int m

  2. 正方形の面積を求めるJavaプログラムの書き方【初心者向け解説】

    この記事では、Javaを使って正方形の面積を求める方法をわかりやすく解説します。正方形の面積は、次の公式で計算できます。辺 × 辺つまり s2正方形の面積の計算式正方形の1辺の長さを s とすると、その面積は s2(辺の2乗)で表されます。下図のように、縦と横が同じ長さの図形であるため、辺同士を掛け合わせるだけで面積が求まります。入力例1辺の長さ : 4出力例正方形の面積 : 16アルゴリズム処理の流れは以下の手順になります。Step 1 - 開始Step 2 - 整数型の変数 my_side(辺の長さ)と my_area(面積)を宣言するStep 3 - ユーザーから値を読み込む、または値を