문제
Compute base to the power exponent with recursion: x⁰ = 1, and xⁿ = (x^(n/2))² for even n or x × (x^((n−1)/2))² for odd n. This uses far fewer multiplications than a simple loop.
Implement recursive_power(base, exponent).
Input
base: The base. exponent: The exponent (zero or positive).
Output
Return base raised to exponent.
제약 조건
-10 ≤ base ≤ 10; 0 ≤ exponent ≤ 18
예시
입력:
base = 3
exponent = 5
예상 출력:
expected = 243
입력:
long long base = 3;
long long exponent = 5;
예상 출력:
long long expected = 243;
입력:
long base = 3;
long exponent = 5;
예상 출력:
long expected = 243;
설명
3⁵ = 3 × (3²)² = 3 × 81 = 243.
입력:
base = 7
exponent = 0
예상 출력:
expected = 1
입력:
long long base = 7;
long long exponent = 0;
예상 출력:
long long expected = 1;
입력:
long base = 7;
long exponent = 0;
예상 출력:
long expected = 1;
설명
The base case: anything to the power 0 is 1.
접근 방법
먼저 스스로 풀어 본 뒤 힌트를 하나씩 열어 보세요.
힌트 1
Use the exponent’s parity to shrink the problem size quickly.
힌트 2
Recursive squaring avoids repeating work and cuts the number of multiplications drastically.
힌트 3
Be careful with the zero exponent and the base case for tiny exponents.
예상 복잡도
O(log exponent) time, O(log exponent) extra space
참고 자료
이 문제는 CodeUtility에 맞게 수정되었습니다. 위의 설명과 제한 조건을 따르세요.