close
這次打算寫自己的LeetCode刷題記錄,主要是為了要留下自己的解題過程,
因為文科少女除了是文科腦以外,還是金魚腦XDD
不過由於只是自己的解題過程紀錄,所以不會是最高超的解題方式,
反而會偏向於比較容易懂的方式!
這次先來記錄一下,自己最不擅長的數學題QQ
題目需求:
n為任意數字,判斷n是否為2的次方(回傳true或false)。
解題過程:
1. 先排除小於1的數字,因為負數和0都不等於2的2次方。
2. 1雖然用2除不盡,但是2的0次方為1,所以如果n等於1,一定會先回傳true。
3. 接著讓我們從2開始判斷,把不是2的次方數的數字都挑出來,並回傳false。
4. 2一定是2的次方,所以在條件設定上,直接用n>2下去設定。
5. 在大於2的數字中,如果無法被2除盡,一定就不是2的次方數,所以一定要被挑出來回傳false。
=>看是否能被2除盡的部分利用算術運算子%,若n%2 不等於0,就代表除不盡。
6. 有些數字則是在第一次除以2時,可以被除盡,但是第二次開始就無法被2除盡,
代表這個數字不是純粹被2組成的數字a。
=>這種數字也就不是2的次方。
7.數字第一次用%看是否可以被除盡後,若可以除盡,再除2一次,看被除2後,是否還可以被2整除,以確認這個數字不是真的是2的次元。
8. 最終被這個過程過濾掉的數字,就會是2的次方。
程式碼內容:
完成!!
文章標籤
全站熱搜
留言列表