Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 첫 N개 자연수의 평균 구하기 – 수학 공식과 예제 코드

이 문제에서는 하나의 숫자 n이 주어지며, 우리의 목표는 첫 N개의 자연수의 평균을 구하는 것입니다.

평균(Average)이란 모든 수의 합을 수의 총 개수로 나눈 값으로 정의됩니다. 따라서 첫 N개의 자연수의 평균은 '첫 N개 자연수의 합 ÷ N'이 됩니다.

문제 이해를 위한 예시

입력 : N = 23
출력 : 12

풀이 설명 −

1 + 2 + 3 + ... + 22 + 23 = 276
276 / 23 = 12

해결 접근 방법

평균을 구하기 위해 기본적인 평균 공식을 활용합니다.

Average = sum(N) / N

Average = (1 + 2 + 3 + ... + N) / N

여기서 첫 N개의 자연수의 합은 잘 알려진 등차수열 합 공식으로 구할 수 있습니다.

sum(N) = N × (N + 1) / 2

이 공식을 평균 식에 대입하면 다음과 같이 정리됩니다.

Average = [N × (N + 1) / 2] / N = (N + 1) / 2

즉, 반복문 없이 단순히 (N + 1) / 2만 계산하면 되므로 시간 복잡도는 O(1)로 매우 효율적입니다.

구현 예제

아래 프로그램은 위 해결 방법이 실제로 동작하는 모습을 보여줍니다.

#include <iostream>
using namespace std;

float calcAverage(int n) {
return (float)(((float)n + 1) / 2);
}

int main() {
int N = 45;
cout << "첫 " << N << "개 자연수의 평균은 " << calcAverage(N);
return 0;
}

실행 결과

첫 45개 자연수의 평균은 23

이처럼 수학적 공식을 활용하면 N이 아무리 커져도 상수 시간 안에 평균을 계산할 수 있어, 실전 코딩 테스트에서도 유용하게 활용할 수 있습니다.