Problem From.
https://leetcode.com/problems/powx-n/
오늘 문제는 pow 함수를 구현하는 문제였다.
이 문제는 dfs 와 각각의 경우를 나누어서 풀 수 있었는데,
먼저 n 이 0 인 경우 1을 반환해주고,
n 이 0 보다 작은 경우 분수 계산을 해주고
그 이외의 경우에는 pow 계산을 하도록 나누어서 재귀를 해주었다.
class Solution {
fun myPow(x: Double, n: Int): Double {
return dfs(x , 1L * n)
}
fun dfs(x:Double,n:Long):Double{
if(n == 0L) return 1.0
if(n < 0) return dfs(1/x , -n)
return if(n % 2 == 0L) dfs(x * x , n / 2)
else dfs(x * x , n / 2) * x
}
}