안녕하세요, 작가 J입니다. 이번에는 두 개의 정수 base와 n을 받아 base의 n제곱 값을 반환하는 powerN() 메소드를 작성해 보겠습니다. 이 예제는 반복문, 재귀 호출, 그리고 Java의 내장 함수인 Math.pow()를 활용하여 거듭제곱을 계산하는 방법을 이해하는 데 도움이 됩니다.
[Java Festival Bonus06] 거듭제곱 계산하기
2개의 정수 base, n을 받아 base의 n제곱 만큼
값을 반환하는 powerN() 메소드를 작성하세요
powerN(2,3) => 8을 반환
powerN(3,3) => 27을 반환
powerN(10,2) => 100을 반환
코드 풀이 1: 기본 방식
package Bonus;
public class Bonus06 {
public static void main(String[] args) {
int base = 10;
int n = 2;
int result = powerN(base, n);
System.out.println("결과 확인 : " + result);
}
// base의 n제곱 값을 계산하여 반환하는 메소드
private static int powerN(int base, int n) {
int result = 1; // 초기값 설정
for (int i = 0; i < n; i++) { // n번 반복
result *= base; // base를 result에 곱함
}
return result; // 최종 결과 반환
}
}
1. 기본값 설정 및 메소드 호출
- int base = 10;: 밑(base)을 10으로 설정합니다.
- int n = 2;: 지수(n)을 2로 설정합니다.
- int result = powerN(base, n);: powerN() 메소드를 호출하여 결과를 계산합니다.
- System.out.println("결과 확인 : " + result);: 결과를 출력합니다.
2. powerN() 메소드
- private static int powerN(int base, int n) { ... }: base의 n제곱 값을 계산하여 반환하는 메소드입니다.
- int result = 1;: 결과를 저장할 변수를 초기값 1로 설정합니다.
- for (int i = 0; i < n; i++) { ... }: n번 반복합니다.
- result *= base;: base를 result에 곱하여 결과를 누적합니다.
- return result;: 최종 결과를 반환합니다.
코드 풀이 2: 재귀 호출을 사용한 방식
package Bonus;
public class Bonus06Alternative {
public static void main(String[] args) {
int base = 10;
int n = 2;
int result = powerN(base, n);
System.out.println("결과 확인 : " + result);
}
// base의 n제곱 값을 재귀적으로 계산하여 반환하는 메소드
private static int powerN(int base, int n) {
if (n == 0) {
return 1; // 지수가 0이면 1 반환
} else {
return base * powerN(base, n - 1); // 재귀 호출
}
}
}
1. powerN() 메소드
- private static int powerN(int base, int n) { ... }: base의 n제곱 값을 재귀적으로 계산하여 반환하는 메소드입니다.
- if (n == 0) { return 1; }: 지수가 0이면 1을 반환합니다.
- else { return base * powerN(base, n - 1); }: 지수가 0이 아닐 경우 base와 powerN(base, n - 1)의 곱을 반환합니다. 이는 재귀적으로 n이 0이 될 때까지 호출됩니다.
2. 재귀 호출이란?
- 재귀 호출은 메소드가 자기 자신을 다시 호출하는 프로그래밍 기법입니다. 재귀 호출은 문제를 더 작은 문제로 나누어 해결할 수 있을 때 유용합니다.
- 예를 들어, powerN(base, n)에서 n이 0이 되면 1을 반환하고, 그렇지 않으면 base * powerN(base, n - 1)을 반환하여 재귀적으로 문제를 해결합니다.
코드 풀이 3: Math.pow() 함수를 사용한 방식
package Bonus;
public class Bonus06Math {
public static void main(String[] args) {
int base = 10;
int n = 2;
double result = powerN(base, n);
System.out.println("결과 확인 : " + (int) result);
}
// base의 n제곱 값을 Math.pow()를 사용하여 계산하는 메소드
private static double powerN(int base, int n) {
return Math.pow(base, n); // Math.pow()를 사용하여 base의 n제곱을 계산
}
}
1. powerN() 메소드
- private static double powerN(int base, int n) { ... }: base의 n제곱 값을 Math.pow()를 사용하여 계산하는 메소드입니다.
- return Math.pow(base, n);: Math.pow(base, n)를 사용하여 base의 n제곱 값을 반환합니다.
마무리
이번 예제에서는 두 개의 정수 base와 n을 받아 base의 n제곱 값을 반환하는 세 가지 방식의 powerN() 메소드를 다뤄보았습니다. 첫 번째 방식은 반복문을 사용한 방식이며, 두 번째 방식은 재귀 호출을 사용한 방식, 세 번째 방식은 Math.pow() 함수를 사용한 방식입니다. 재귀 호출에 대한 간단한 설명도 추가하여 이해를 돕도록 했습니다. 세 가지 방법 모두 이해하시는데 도움이 되길 바랍니다.
프로그래밍을 시작하는 모든 분께 이 예제가 도움이 되길 바랍니다. 앞으로도 다양한 유형의 문제를 통해 여러분의 학습을 도울 수 있도록 노력하겠습니다. 감사합니다!
'프로그래밍 기초 > Java Festival' 카테고리의 다른 글
[Java Festival] 29. 두 정수의 합 맞추기 게임 (0) | 2024.07.05 |
---|---|
[Java Festival] 28. 2진수를 10진수로 변환하기 (0) | 2024.07.05 |
[Java Festival] 27. Java 시험 문제 채점하기 (0) | 2024.07.05 |
[Java Festival] 26. 세 자리 수의 곱셈 계산 (0) | 2024.07.05 |
[Java Festival] 25. 숫자에 사용되는 대시('-')의 개수 계산하기 (0) | 2024.07.05 |