자연수란 무엇인가?
양의 정수 1, 2, 3, 4, ... 와 같은 수들을 자연수(natural number)라고 부릅니다.
이 프로그램은 사용자로부터 양의 정수 n을 하나 입력받은 뒤, 다음과 같은 처음 n개의 자연수 세제곱의 합을 계산하여 화면에 출력합니다.
13 + 23 + 33 + ... + n3
실행 결과 예시
입력: n = 3
출력: 36
동작 원리 설명
n이 3으로 주어진 경우, 프로그램은 1부터 3까지 각 자연수를 세제곱한 값들을 모두 더합니다.
13 + 23 + 33 = 1 + 8 + 27 = 36
따라서 최종 결과값인 36이 출력됩니다.
C++ 소스 코드
#include <iostream>
using namespace std;
int main() {
int n = 3;
int sum = 0;
for (int x=1; x<=n; x++)
sum += x*x*x;
cout << sum;
return 0;
}
코드 상세 해설
위 코드의 동작 과정은 다음과 같습니다.
1. 정수형 변수 n에 3을 저장하고, 합계를 담을 변수 sum을 0으로 초기화합니다.
2. for 반복문이 1부터 n까지 순회하며, 각 반복마다 현재 값 x의 세제곱(x*x*x)을 sum에 누적합니다.
3. 반복이 종료되면 cout을 통해 최종 합계를 출력하고 프로그램을 정상 종료합니다.
참고: 수학 공식을 활용한 방법
반복문 없이도 처음 n개의 자연수 세제곱합은 다음 공식으로 한 번에 계산할 수 있습니다.
13 + 23 + ... + n3 = [n(n+1)/2]2
예를 들어 n = 3이면 (3 × 4 / 2)2 = 62 = 36으로, 반복문을 사용한 결과와 동일함을 확인할 수 있습니다. 이 공식을 활용하면 시간 복잡도 O(1)로 매우 큰 n에 대해서도 빠르게 계산할 수 있다는 장점이 있습니다.