怎樣從數學的角度判斷乙個數是不是另乙個數的指數

2021-08-04 14:53:33 字數 520 閱讀 5733

今天刷題的時候,刷了兩道題,都是用來判斷數a是不是數b的幾次方,剛開始是判斷數a是不是數b的2次方,比如說2,4,8之類,這道題有些小的技巧,就是如果乙個數是2的冪,那麼這個數的二進位制裡一定只含有乙個1,所以只需要判斷這個數的二進位制只含有乙個1就行,用 n & n-1**來進行判斷。

需要注意的是,數a一定不能是非正數。

**如下:

class solution 

};

接下來我又做了乙個題目是判斷乙個數是不是3的冪,比如3,9,27之類的,這類數沒法從二進位制的角度去判斷,只能用數學的角度去判斷。

需要拿出大殺器log函式,如果乙個數a是3的冪,那麼一定滿足:

得到的結果q一定是乙個整數。

另外再介紹乙個c++的函式fmod(a,b)

其中a和b都是浮點數,得到的結果是a%b

**如下:

class

solution

};

特此記錄,謹防忘記。

判斷乙個數是否是回文數

題目 定義回文數的概念如下 如果乙個非負數左右完全對應,則該數是回文數,如 121,22 如果乙個負數的絕對值左右完全對應,則該數是回文數,如 121,22 public static void main string args printrandm arr,3 1 5 4 system.out.p...

判斷乙個數是否是質數

乙個數如果可以進行因數分解,那麼分解的兩個數一定是乙個小於等於sqrt n 乙個大於等於sqrt n 因此遍歷到sqrt n 即可。因為如果sqrt n 左側找不到因數,右側也一定找不到因數。中心思想 遍歷n是否能被2到sqrt n 之間的數整除,如果不能則為質數。import math defis...

判斷乙個數是否是素數

素數釋義 曾稱質數。乙個大於1的正整數,如果除了1和它本身以外,不能被其他正整數整除,就叫素數。如2,3,5,7,11,13,17 public boolean isprime int n for int i 2 i從2開始,一直到小於其自身,依次判斷能否被n整除即可,能夠整除則不是質數,否則是質數...