1629번 - 곱셈
두 방법 모두 Visual Studio로 찍었을 때 같은 값이 나오는데
밑에 코드와 비교하여 작성한 코드의 방법이 안되는 이유가 궁금합니다!!
long long mul(long long a, long long b, long long c) { if (b == 0) { return 1LL; } else if (b == 1) { return a%c; } else if (b % 2 == 0) { long long temp = mul(a, b / 2, c); return (temp * temp) % c; } else { return (a * mul(a, b - 1, c)) % c; }}
댓글을 작성하려면 로그인해야 합니다.
gunwooyeon 6년 전
두 방법 모두 Visual Studio로 찍었을 때 같은 값이 나오는데
밑에 코드와 비교하여 작성한 코드의 방법이 안되는 이유가 궁금합니다!!
long long mul(long long a, long long b, long long c) {
// 기존의 방법if (b == 0) {
return 1LL;
}
else if (b == 1) {
return a%c;
}
else if (b % 2 == 0) {
long long temp = mul(a, b / 2, c);
return (temp * temp) % c;
}
else {
return (a * mul(a, b - 1, c)) % c;
}
}