이 글에서는 Java 프로그램으로 숫자의 거듭제곱을 계산하는 방법을 알아봅니다. 거듭제곱은 어떤 수를 지수에 해당하는 횟수만큼 자기 자신과 반복해서 곱한 값으로, while 루프를 이용하면 간단하게 구현할 수 있습니다.
예를 들어 4의 5제곱은 4 × 4 × 4 × 4 × 4 = 1024가 됩니다.
입력 · 출력 예시
입력
입력값이 다음과 같다고 가정해 보겠습니다.
숫자 : 4 지수 값 : 5
출력
즉, 45를 계산한 결과는 다음과 같습니다.
결과는 1024 입니다
알고리즘
Step 1 – 시작 Step 2 – 정수형 변수 my_input(밑)과 my_exponent(지수)를 선언한다. Step 3 – 사용자로부터 필요한 값을 입력받거나, 값을 미리 정의한다. Step 4 – while 루프를 사용하여 입력값을 지수 횟수(n)만큼 자기 자신과 곱하고, 그 결과를 저장한다. Step 5 – 결과를 화면에 출력한다. Step 6 – 종료
예제 1 – 사용자 입력 받기 (Scanner 활용)
다음 예제는 Scanner 클래스를 사용해 사용자로부터 숫자와 지수를 입력받은 후 거듭제곱을 계산합니다. 온라인 코딩 도구(컴파일러)에서 직접 실행해 볼 수도 있습니다.
import java.util.Scanner;
public class Exponents {
public static void main(String[] args) {
int my_input, my_exponent;
System.out.println("필요한 패키지를 가져왔습니다.");
Scanner my_scanner = new Scanner(System.in);
System.out.println("Scanner 객체가 생성되었습니다.");
System.out.print("숫자를 입력하세요 : ");
my_input = my_scanner.nextInt();
System.out.print("지수 값을 입력하세요 : ");
my_exponent = my_scanner.nextInt();
long my_result;
my_result = 1;
while (my_exponent != 0) {
my_result *= my_input;
--my_exponent;
}
System.out.println("결과 = " + my_result);
}
}
실행 결과
필요한 패키지를 가져왔습니다. Scanner 객체가 생성되었습니다. 숫자를 입력하세요 : 4 지수 값을 입력하세요 : 5 결과 = 1024
예제 2 – 값이 미리 정의된 경우
이번에는 숫자와 지수가 코드 안에서 미리 정의되어 있으며, 별도의 입력 없이 콘솔에 바로 계산 결과를 출력합니다.
public class Exponents {
public static void main(String[] args) {
int my_input, my_exponent;
my_input = 4;
my_exponent = 5;
System.out.println("숫자는 " + my_input + "로, 지수는 " + my_exponent + "로 정의되어 있습니다.");
long my_result;
my_result = 1;
while (my_exponent != 0) {
my_result *= my_input;
--my_exponent;
}
System.out.println("결과 = " + my_result);
}
}
실행 결과
숫자는 4로, 지수는 5로 정의되어 있습니다. 결과 = 1024
참고: Math.pow() 메서드 활용하기
반복문을 직접 작성하지 않고 Java 기본 라이브러리의 Math.pow() 메서드를 사용해도 거듭제곱을 구할 수 있습니다.
double result = Math.pow(4, 5); // 1024.0
다만 Math.pow()는 double 타입으로 연산하기 때문에 부동소수점 오차가 발생할 수 있고, 지수가 매우 클 경우 정확도가 떨어질 수 있습니다. 따라서 정수 연산의 정확성이 중요하다면 위 예제처럼 반복문을 사용하거나 BigInteger 클래스를 활용하는 것이 좋습니다.
또한 곱셈이 반복될수록 값이 빠르게 커지므로, 결과를 저장할 때 int 대신 long 타입을 사용하면 오버플로 가능성을 줄일 수 있다는 점도 눈여겨볼 만합니다.
마무리
정리하면, Java에서 거듭제곱을 계산하는 핵심은 결과 변수를 1로 초기화한 뒤 지수 횟수만큼 밑을 반복해서 곱하는 것입니다. 이 원리만 이해하면 Scanner로 사용자 입력을 받는 방식이든 값이 고정된 방식이든 모두 손쉽게 응용할 수 있습니다.