PS/백준 알고리즘[BOJ]

[백준 1629번] 곱셈 (C++)

BE_개발자 2023. 10. 26. 16:39
728x90
반응형
/*************************************************
짝수번: A x A x A x A = (A x A) x (A x A)
홀수번: A x A x A x A x A = (A x A) x (A x A) x A
*************************************************/
#include<iostream>
using namespace std;

long long int dc(int a, int b, int c) {
	if (b == 1) return a % c;//base condition: A의 1승
	if (b % 2) return dc(a, b / 2, c) * dc(a, b / 2, c) % c * a % c;
	else return dc(a, b / 2, c) * dc(a, b / 2, c) % c;
}

int main(void) {
	cin.tie(0);
	ios_base::sync_with_stdio(NULL);
	int A, B, C;
	cin >> A >> B >> C;
	cout << dc(A, B, C);

	return 0;
}
728x90
반응형