이 글에서는 사용자가 입력한 n에 대해 처음 n개의 홀수 자연수의 평균을 구하는 방법을 알아봅니다. i번째 홀수는 공식 2*i + 1로 계산할 수 있으며, 이번 풀이에서도 이 공식을 그대로 활용합니다. 먼저 알고리즘을 살펴보며 전체 흐름을 명확하게 이해해 보겠습니다.
알고리즘
avgOddNaturalNumber(n)
Begin
sum := 0
for i in range 0 to n-1, do
sum := sum + (2i + 1)
done
return sum/n
EndC++ 예제 코드
#include<iostream>
using namespace std;
float avgOddNaturalNumber(int n){
int sum = 0;
for(int i = 0; i<n; i++){
sum += (2*i + 1);
}
return (float)sum / n;
}
int main() {
int n;
cout << "숫자를 입력하세요: ";
cin >> n;
cout << "처음 " << n << "개의 홀수 자연수의 평균은: " << avgOddNaturalNumber(n);
return 0;
}실행 결과
숫자를 입력하세요: 5 처음 5개의 홀수 자연수의 평균은: 5
코드 설명
위 프로그램은 다음과 같은 순서로 동작합니다.
1. 변수 sum을 0으로 초기화하여 홀수들의 합을 저장할 준비를 합니다.
2. 반복문에서 i가 0부터 n-1까지 증가하면서 각 단계마다 2*i + 1을 더합니다. 이렇게 하면 1, 3, 5, 7, ... 처럼 연속된 홀수가 차례대로 누적됩니다.
3. 반복이 끝나면 총합을 n으로 나누어 평균을 반환합니다. 정수 나눗셈으로 인한 오차를 방지하기 위해 float 형 변환을 적용했습니다.
수학적 배경
흥미로운 사실 하나를 덧붙이자면, 처음 n개의 홀수 자연수의 합은 항상 n²과 같습니다. 예를 들어 n=5일 때 1+3+5+7+9 = 25 = 5² 입니다. 따라서 평균은 n² ÷ n = n이 되어, 처음 n개의 홀수 자연수의 평균은 언제나 n이라는 결론을 얻을 수 있습니다. 이 성질을 이용하면 반복문 없이도 평균을 바로 계산할 수 있습니다.