「ALBB面試題」 【題目】 如何判斷一個數是否為2的n次方 【題目分析】 看到這種題,相信大家第一反應就是循環除2,這樣做肯定是可以得出結果的;但是這種做法無疑大大增加了計算機的運行時間,一個非常大的數字可能會讓計算機內存溢出,有沒有更好的解決方式呢?有!如果你對數字2敏感,那么一定 ...
昨天去面試時,面試官問了一道面試題,說如何判斷一個數是不是 的n次方冪,我當時不知道 的n次方冪是什么 糗大發了 ,還好給我解釋了一下。最后回家上網查查資料,整理了一下方法。 方法一 如何判斷一個數是否是 的n次方冪,其簡單判斷方法就是這個數num直接除 ,若余數為 ,則num 再除 ,再判斷是不是余數是不是 ,是的話繼續按上一步來,直到最后為num 。 比如: 是 是 不是 不是 不是 代碼實 ...
2017-08-23 10:57 7 5708 推薦指數:
「ALBB面試題」 【題目】 如何判斷一個數是否為2的n次方 【題目分析】 看到這種題,相信大家第一反應就是循環除2,這樣做肯定是可以得出結果的;但是這種做法無疑大大增加了計算機的運行時間,一個非常大的數字可能會讓計算機內存溢出,有沒有更好的解決方式呢?有!如果你對數字2敏感,那么一定 ...
一、2的冪次方的基本定義 什么樣的數為2的冪次方?例如2^0=1,2^1=2,2^2=4……,符合公式2^n(n>=0)的數稱為2的冪次方。 如何判斷一個數是否為2的冪次方呢?基本思路:把一個數不斷的除以2,得到商與余數,若余數等於1,則這個數必然不是;若余數大於1,則繼續除以2,直到商 ...
思路 :用當前值除以3 獲得一個值 a , b = parseInt(a) c = Math.pow(3,b); 用c 除以 要判斷的數,如果能除盡, 則是, 如果除不盡, 則不是。 ...
利用與(&)運算符 可以快速判斷一個數是否為2的冪次方 將2的冪次方寫成二進制形式后,很容易就會發現有一個特點:二進制中只有一個1,並且1后面跟了N個0, 因此問題可以轉化為判斷1后面是否跟了N個0就可以了。 如果將這個數減去1后會發現,僅有的那個1會變為0,而原來 ...
第一種方法 暴力解法 第二種方法 示例分析 以16為例,二進制表示為 16減1為15的二進制表示為 兩者按位與 十進制表示為0,說明是2的N次冪。 擴展-判斷一個數是否是n的N次冪 參考 [算法]快速判斷一個數是否是2的冪次方 ...
function isNumber(val) { var regPos = /^\d+(\.\d+)?$/; //非負浮點數 var regNeg = /^(-(([0-9]+ ...