정사각형의 넓이는 한 변의 길이를 제곱한 값과 같습니다. 이 글에서는 하나의 정사각형에서 출발하여, 각 정사각형의 네 변의 중점(midpoint)을 차례로 연결해 새로운 정사각형을 만드는 과정을 여러 번 반복할 때, 각 단계에서 만들어지는 정사각형의 넓이가 어떻게 변하는지 살펴보겠습니다.
아래 그림은 하나의 정사각형의 중점들을 연결하여 만든 내부 정사각형을 보여줍니다.

내부 정사각형 한 변의 길이 구하기
바깥쪽 정사각형의 한 변의 길이를 a라고 합시다. 중점들을 연결하여 만든 내부 정사각형의 한 변은, 바깥 정사각형의 반쪽 변 두 개를 두 직변으로 하는 직각삼각형의 빗변이 됩니다. 피타고라스 정리를 적용하면 다음과 같이 계산할 수 있습니다.
L2 = (a/2)2 + (a/2)2 L2 = a2(1/4 + 1/4) = a2/2 L = a/√2
따라서 두 번째 정사각형의 넓이는 다음과 같습니다.
두 번째 정사각형의 넓이 = L2 = a2/2
같은 방식으로 세 번째 정사각형의 넓이는 a2/4가 됩니다.
연속된 정사각형 넓이의 규칙성
이제 각 단계별 정사각형의 넓이를 나열해 보면 다음과 같은 분명한 패턴을 발견할 수 있습니다.
a2, a2/2, a2/4, a2/8, …
즉, 이 수열은 첫째 항이 a2이고 공비가 1/2인 등비수열(GP, Geometric Progression)입니다. 일반화하면 n번째 정사각형의 넓이는 다음 식으로 구할 수 있습니다.
n번째 정사각형의 넓이 = a2 × (1/2)n-1
C 언어 구현 예제
이 규칙을 활용하면 복잡한 기하 계산을 반복하지 않고도 원하는 순번의 정사각형 넓이를 곧바로 계산할 수 있습니다. 아래는 C 언어로 작성한 예제 프로그램입니다.
#include <stdio.h>
#include <math.h>
int main() {
double L = 2; // 첫 번째 정사각형의 한 변의 길이
double n = 10; // 구하고자 하는 정사각형의 순번
double firstTerm = L * L; // 첫째 항: a^2 = 4
double ratio = 1 / 2.0; // 공비: 1/2
double area = firstTerm * pow(ratio, n); // n번째 항 계산
printf("%d번째 정사각형의 면적은 %lf입니다.", (int)n, area);
return 0;
}실행 결과
10번째 정사각형의 면적은 0.003906입니다.
한 변의 길이가 2인 정사각형(a2 = 4)에서 시작했을 때, 10번째 정사각형의 넓이는 약 0.003906으로 계산됩니다. 이처럼 중점 연결을 반복할수록 정사각형의 넓이는 매번 절반씩 줄어들며, 이는 공비가 1/2인 등비수열의 성질을 그대로 따르기 때문입니다.