처음 n개의 자연수(1부터 n까지)의 제곱합을 구하는 것은 수학과 프로그래밍에서 자주 등장하는 기본 문제입니다. 반복문으로 하나씩 더할 수도 있지만, 수학적 공식을 활용하면 훨씬 간결하고 효율적으로 계산할 수 있습니다. 아래는 Java로 이를 구현한 예제입니다.
제곱합 공식
처음 n개의 자연수의 제곱합은 다음 공식으로 한 번에 구할 수 있습니다.
1² + 2² + 3² + ... + n² = n(n+1)(2n+1) / 6
이 공식을 사용하면 반복문 없이도 곧바로 결과를 얻을 수 있어 성능 면에서 매우 유리합니다.
예제 코드
import java.io.*;
import java.util.*;
public class Demo{
public static int sum_of_squares(int val){
return (val * (val + 1) / 2) * (2 * val + 1) / 3;
}
public static void main(String[] args){
int val = 8;
System.out.println("처음 8개의 자연수의 제곱합은 ");
System.out.println(sum_of_squares(val));
}
}
실행 결과
처음 8개의 자연수의 제곱합은 204
코드 설명
Demo라는 이름의 클래스 안에는 sum_of_squares라는 메서드가 정의되어 있습니다. 이 메서드는 처음 n개의 자연수의 제곱합을 계산하는 역할을 하며, 앞서 소개한 수학 공식을 그대로 코드로 옮겨 결과를 반환합니다.
main 메서드에서는 n값을 8로 지정한 후, 이 값을 인자로 전달하며 메서드를 호출합니다. 호출된 메서드가 계산한 결과값은 콘솔에 출력됩니다. 실제로 1² + 2² + ... + 8² = 204이므로, 실행 결과와 일치하는 것을 확인할 수 있습니다.