알고리즘/SWEA
[JAVA][SW Expert Academy] 1217. 거듭 제곱
minddi
2022. 8. 18. 22:28
[SW Expert Academy] 1217. 거듭 제곱
※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14dUIaAAUCFAYD
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
문제 내용
다음과 같이 두 개의 숫자 N, M이 주어질 때, N의 M 거듭제곱 값을 구하는 프로그램을 재귀호출을 이용하여 구현해 보아라. 2 5 = 2 X 2 X 2 X 2 X 2 = 32 3 6 = 3 X 3 X 3 X 3 X 3 X 3 = 729 [제약 사항] 총 10개의 테스트 케이스가 주어진다. 결과 값은 Integer 범위를 넘어가지 않는다. [입력] 각 테스트 케이스의 첫 줄에는 테스트 케이스의 번호가 주어지고 그 다음 줄에는 두 개의 숫자가 주어진다. [출력] #부호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 테스트 케이스에 대한 답을 출력한다. |
해결 순서
1. 첫번째 입력 값을 두번째 입력 값 만큼 제곱
2. a의 0제곱은 1
3. a의 x제곱은 a * a * a * ... (x번 반복) => x번만큼 재귀 호출
문제 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import java.util.Scanner;
public class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T = 10;
for(int test_case = 1; test_case <= T; test_case++)
{
int TC = sc.nextInt();
int a = sc.nextInt();
int count = sc.nextInt();
System.out.println("#" + TC + " " + square(a, count));
}
}
public static int square(int a, int count) {
if (count == 0) {
return 1;
} else {
return a * square(a, count-1);
}
}
}
|
cs |