개발자 톡
두 개의 차이점이 뭘까요?
- 등록일
- 2024-01-26 23:37:46
- 조회수
- 595
- 작성자
- mansa0805
하나는 그냥 반복문으로하고 하나는 재귀문을 사용했는데 재귀문을 사용시에는 오답으로 됩니다. 이유가 뭘까요?
//반복문
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
long K = Long.parseLong(st.nextToken());
long P = Long.parseLong(st.nextToken());
long N = Long.parseLong(st.nextToken());
for(int i = 0; i < N; i++) {
K = (P * K) % 1000000007L;
}
System.out.println(K);
br.close();
}
//재귀문
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
long K = Long.parseLong(st.nextToken());
long P = Long.parseLong(st.nextToken());
long N = Long.parseLong(st.nextToken());
System.out.println(recursive(N,K,P));
br.close();
}
public static long recursive(long N, long K, long P) {
if (N == 0) {
return K;
}
return (P * recursive(N-1,K,P)) % 1000000007L;
}