2017年5月1日 星期一

[LeetCode] 326. Power of Three

轉自LeetCode

Given an integer, write a function to determine if it is a power of three.
Follow up:
Could you do it without using any loop / recursion?
<Solution>
Power of Two 這題,因為 2 的次方數特性,可以從判斷有幾個為 1 的 bit 來得到答案

但是 3 的次方數沒有這個特性

這時候需要用到 log 的換底公式 log3n = log10n / log103

如果 n 是 3 的次方數,那麼 log3為整數

所以題目就變成判斷 log10n / log103 是否為整數

要判斷數自 X 是否為整數,可以用這個方式 X - int(X) == 0

code如下(參考資料)

沒有留言:

張貼留言