코딩테스트/백준

[Java] 백준 1629 : 곱셈

플래시🦥 2023. 2. 13.
반응형
https://www.acmicpc.net/problem/1629
 

1629번: 곱셈

첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다.

www.acmicpc.net


 

  • 문제를 나눌 수 없을 때까지 나누어서 각각을 풀면서 다시 합병하여 문제의 답을 얻는 알고리즘
  • 가장 대표적인 예는 병합정렬(Merge Sort)이다.
import java.util.*;
public class Main {

	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		long A = sc.nextInt();
		long B = sc.nextInt();
		long C = sc.nextInt();
		
		System.out.println(pow(A, B,C)%C);
		
	}// main()
	
	static long pow(long A, long B,long C) {
		if(B==0) {
			return 1;
		}else if(B==1) {
			return A;
		} else if (B % 2 == 0) { //짝수 지수
            long n = pow(A, B / 2, C) % C;
            return (n * n) % C;
        } else { //홀수 지수
            long n = pow(A, B / 2, C) %C;
            return (((n * n) % C) * A) % C;
        }
	}//pow()
	
}// class Main

 

728x90
반응형

'코딩테스트 > 백준' 카테고리의 다른 글

[Java] 백준 11403 : 경로 찾기  (0) 2023.02.15
[Java] 백준 1074 : Z  (0) 2023.02.15
[Java] 백준 11057 : 오르막 수  (0) 2023.02.10
[Java] 백준 7526 : 나이트의 이동  (0) 2023.02.10
[Java] 백준 1992 : 쿼드트리  (0) 2023.02.09

댓글