LeetCode-Pow(x,n)
leetcode 050 pow(x,n):求 x 的 n 次方
這個題目在練習的時候一開始做不出來,回家後再做 x 了一次總算是弄出來,但是就跟同事說的一樣,程式真的很醜,多一個測試案例就多一個 if
這絕對不是最佳解啊,由於數學都還給老師,指數早就忘光光,趁著這次的機會又溫習了一下,解題當然不能使用 Math.Pow(),這樣就太犯規了
解題
如果 n (次方數) 為偶數,答案應為 x 的 n / 2 次方 _ x 的 n / 2 次方,例如: 2^4 = 2^2 _ 2^2 = 4 _ 4 = 16
如果是奇數,答案應為偶數的解答再乘上一個 x,例如:2^5 = ( 2^2 _ 2^2 ) _ 2 = 16 _ 2 = 32
次方數的計算則利用遞迴處理,次方為負數的情況,例如:2^-3 = ( 1 / 2 _ 1 / 2 _ 1 / 2 ) = 1 / 8 = 1 / ( 2^3 )
1 | class solution { |
Sample Code:GitHub