처음 n개의 짝수의 제곱합이란, 각 짝수를 제곱한 뒤 그 값들을 모두 더한 결과를 의미합니다. 예를 들어 n = 3이라면, 처음 세 개의 짝수는 2, 4, 6이고, 각각을 제곱하면 4, 16, 36이 되며, 이를 모두 더한 56이 바로 구하고자 하는 합입니다.
처음 n개의 짝수의 제곱합을 구하는 방법은 크게 두 가지가 있습니다.
1. 반복문(Loop) 활용하기
반복문을 사용하여 1부터 n까지 숫자를 하나씩 증가시키면서 각 짝수를 구하고, 그 값을 제곱한 후 sum 변수에 누적하는 방식입니다.
예제 코드
#include <iostream>
using namespace std;
int main() {
int sum = 0, n = 12;
for (int i = 1; i <= n; i++)
sum += (2 * i) * (2 * i);
cout << "Sum of first " << n << " natural numbers is " << sum;
return 0;
}실행 결과
Sum of first 12 natural numbers is 2600
이 방식은 반복문을 n번 수행하기 때문에 시간 복잡도가 O(n)입니다. 따라서 n의 값이 매우 커지면 연산에 상당한 시간이 소요될 수 있습니다.
2. 수학 공식 활용하기
반복문의 성능 한계를 보완하기 위해 수학적 공식을 활용할 수 있습니다. 처음 n개의 짝수 자연수의 제곱합은 다음 공식으로 계산할 수 있습니다.
합 = 2n(n+1)(2n+1) / 3
이 공식을 사용하면 반복 없이 단 한 번의 연산으로 결과를 얻을 수 있어, 시간 복잡도가 O(1)로 크게 개선됩니다.
예제 코드
#include <iostream>
using namespace std;
int main() {
int n = 12;
int sum = (2*n*(n+1)*(2*n+1))/3;
cout << "Sum of first " << n << " natural numbers is " << sum;
return 0;
}실행 결과
Sum of first 12 natural numbers is 2600
정리
두 방법 모두 동일한 결과를 출력하지만, 입력 크기가 작다면 반복문 방식도 충분히 실용적입니다. 반면 n이 큰 경우에는 수학 공식을 사용하는 것이 실행 속도 면에서 훨씬 효율적입니다. 따라서 문제의 요구 사항과 입력 크기를 고려해 적절한 방법을 선택하는 것이 좋습니다.