SWEA(SWExpertacAdemy)

[SWEA] 1217. [S/W 문제해결 기본] 4일차 - 거듭 제곱 (자바/JAVA)

심층코드 2025. 5. 9. 17:48

1217. [S/W 문제해결 기본] 4일차 - 거듭 제곱 D3

다음과 같이 두 개의 숫자 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

[제약 사항]
java: import java.util.Scanner;
c/c++: #include
를 제외한 나머지 라이브러리 사용을 금한다.


총 10개의 테스트 케이스가 주어진다.

결과 값은 Integer 범위를 넘어가지 않는다.
 
[입력]

각 테스트 케이스의 첫 줄에는 테스트 케이스의 번호가 주어지고 그 다음 줄에는 두 개의 숫자가 주어진다.

[출력]

#부호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 테스트 케이스에 대한 답을 출력한다.

입력1
9 8
2
2 8
........
출력#1 43046721
#2 256
.......

 

[코드1] Scanner

import java.util.Scanner;

public class Solution{

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		for(int i=1; i<=10; i++) {
			
			int T=sc.nextInt();
			
			int N=sc.nextInt();
			int N_=N;
			int M=sc.nextInt();
			for(int j=1; j<M;j++) {
				N=N*N_;
			}
			System.out.println("#"+T+" "+N);
		}
		sc.close();
	}
}

  사용

 

[코드2] BufferedReader, StringTokenizer 사용

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Solution {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		for(int i=1; i<=10; i++) {
			
			int T=Integer.parseInt(br.readLine());
			StringTokenizer st = new StringTokenizer(br.readLine());
			int N=Integer.parseInt(st.nextToken());
			int N_=N;
			int M=Integer.parseInt(st.nextToken());
			for(int j=1; j<M;j++) {
				N=N*N_;
			}
			System.out.println("#"+T+" "+N);
		}
		br.close();
	}
}