給你乙個非負整數 num ,請你返回將它變成 0 所需要的步數。 如果當前數字是偶數,你需要把它除以 2 ;否則,減去 1 。
示例 1:
輸入:num = 14示例 2:輸出:6
解釋:步驟 1) 14 是偶數,除以 2 得到 7 。
步驟 2) 7 是奇數,減 1 得到 6 。
步驟 3) 6 是偶數,除以 2 得到 3 。
步驟 4) 3 是奇數,減 1 得到 2 。
步驟 5) 2 是偶數,除以 2 得到 1 。
步驟 6) 1 是奇數,減 1 得到 0 。
輸入:num = 8演算法一:按題步驟直接實現輸出:4
解釋:步驟 1) 8 是偶數,除以 2 得到 4 。
步驟 2) 4 是偶數,除以 2 得到 2 。
步驟 3) 2 是偶數,除以 2 得到 1 。
步驟 4) 1 是奇數,減 1 得到 0 。
int
numberofsteps1
(int
* arr,
int num)
else
}return count;
}
演算法二:全部使用位運算子
int
numberofsteps2
(int num)
return count;
}
將數字變成 0 的操作次數 php
給你乙個非負整數 num 請你返回將它變成 0 所需要的步數。如果當前數字是偶數,你需要把它除以 2 否則,減去 1 輸入 num 14 輸出 6 解釋 步驟 1 14 是偶數,除以 2 得到 7 步驟 2 7 是奇數,減 1 得到 6 步驟 3 6 是偶數,除以 2 得到 3 步驟 4 3 是奇數...
將陣列的數字複製並將負數改變成正數(彙編)
將10個數 有正數,有負數 全部轉換成正數指令 含義lea bx,x lea取x有效的位址給bx mov bx,offset x 將x的位址給bx,相當於lea bx,x,和第一條指令等價 or al,al al 與 al jns判斷不是不是負數 jnz判斷不是0 data segment x db...
演算法 出現次數超過一半的數字
題目 陣列中有乙個數字出現的次數超過了陣列長度的一半,找出這個數字。考慮到這個問題本身的特殊性,我們可以在遍歷陣列的時候儲存兩個值 乙個candidate,用來儲存陣列中遍歷到的某個數字 乙個ntimes,表示當前數字的出現次數,其中,ntimes初始化為1。當我們遍歷到陣列中下乙個數字的時候 舉個...