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

C 프로그램으로 처음 n개 짝수의 제곱합 구하기

처음 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이 큰 경우에는 수학 공식을 사용하는 것이 실행 속도 면에서 훨씬 효율적입니다. 따라서 문제의 요구 사항과 입력 크기를 고려해 적절한 방법을 선택하는 것이 좋습니다.