처음 n개 자연수의 제곱합이란?
처음 n개 자연수의 제곱합은 1부터 n까지 각 자연수를 제곱한 값들을 모두 더한 결과입니다.
입력 - 5
출력 - 55
설명 - 12 + 22 + 32 + 42 + 52 = 55
처음 n개 자연수의 제곱합을 구하는 방법은 크게 두 가지가 있습니다.
방법 1: 반복문 사용
가장 직관적인 방법은 반복문을 활용하는 것입니다. 1부터 n까지 숫자를 하나씩 순회하며 각 숫자의 제곱을 구하고, 이를 합계 변수에 계속 누적하면 됩니다.
예제 코드
#include <iostream>
using namespace std;
int main() {
int n = 5;
int sum = 0;
for (int i = 1; i <= n; i++)
sum += (i * i);
cout << "처음 " << n << "개 자연수의 제곱의 합은 " << sum << "입니다";
return 0;
}실행 결과
처음 5개 자연수의 제곱의 합은 55입니다
방법 2: 수학 공식 사용
반복문은 n이 커질수록 연산 횟수도 함께 늘어납니다. 이때 수학 공식을 사용하면 프로그램의 부담을 크게 줄일 수 있습니다. 처음 n개 자연수의 제곱합 공식은 다음과 같습니다.
n(n+1)(2n+1) / 6
이 공식을 활용하면 반복 연산 없이 단 한 번의 계산만으로 결과를 얻을 수 있어, 시간 복잡도 측면에서 훨씬 효율적입니다.
예제 코드
#include <stdio.h>
int main() {
int n = 10;
int sum = (n * (n + 1) * (2 * n + 1)) / 6;
printf("처음 %d개 자연수의 제곱의 합은 %d입니다", n, sum);
return 0;
}실행 결과
처음 10개 자연수의 제곱의 합은 385입니다
정리
반복문 방식은 코드가 직관적이라 이해하기 쉬운 장점이 있고, 공식 방식은 O(1)의 시간 복잡도로 매우 빠르다는 장점이 있습니다. n의 크기가 작다면 반복문으로도 충분하지만, 처리해야 할 데이터가 크거나 성능이 중요한 경우에는 수학 공식을 사용하는 것이 좋습니다.