class Solution {
public:
int numberOfSteps(int num) {
}
};
1342. 将数字变成 0 的操作次数
给你一个非负整数 num
,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。
示例 1:
输入:num = 14 输出: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 。
示例 2:
输入:num = 8 输出:4 解释: 步骤 1) 8 是偶数,除以 2 得到 4 。 步骤 2) 4 是偶数,除以 2 得到 2 。 步骤 3) 2 是偶数,除以 2 得到 1 。 步骤 4) 1 是奇数,减 1 得到 0 。
示例 3:
输入:num = 123 输出:12
提示:
0 <= num <= 10^6
原站题解
rust 解法, 执行用时: 0 ms, 内存消耗: 2.1 MB, 提交时间: 2023-09-15 10:38:37
impl Solution { pub fn number_of_steps(mut num: i32) -> i32 { let mut ans = 0; while num != 0 { num = if num % 2 == 0 { num/2 } else { num-1 }; ans += 1; } ans as i32 } }
cpp 解法, 执行用时: 0 ms, 内存消耗: 6.4 MB, 提交时间: 2023-09-15 10:35:38
class Solution { public: int numberOfSteps(int num) { int ans = 0; while ( num != 0 ) { num = num % 2 == 0 ? num / 2 : num - 1; ans++; } return ans; } };
java 解法, 执行用时: 0 ms, 内存消耗: 38.3 MB, 提交时间: 2023-09-15 10:34:36
class Solution { public int numberOfSteps(int num) { int ans = 0; while ( num != 0 ) { num = num % 2 == 1 ? num - 1 : num / 2; ans++; } return ans; } }
golang 解法, 执行用时: 0 ms, 内存消耗: 1.8 MB, 提交时间: 2023-09-15 10:33:03
func numberOfSteps(num int) int { ans := 0 for num != 0 { if num % 2 == 0 { num /= 2 } else { num-- } ans++ } return ans }
python3 解法, 执行用时: 52 ms, 内存消耗: 15.7 MB, 提交时间: 2023-09-15 10:32:05
class Solution: def numberOfSteps(self, num: int) -> int: ans = 0 while num != 0: num = num // 2 if num % 2 == 0 else num - 1 ans += 1 return ans
php 解法, 执行用时: 4 ms, 内存消耗: 15.3 MB, 提交时间: 2021-05-14 18:22:09
class Solution { /** * @param Integer $num * @return Integer */ function numberOfSteps($num) { $ans = 0; while ( $num != 0 ) { if ( $num % 2 == 0 ) $num >>= 1; else $num = $num ^ 1; $ans++; } return $ans; } }
php 解法, 执行用时: 8 ms, 内存消耗: 15.1 MB, 提交时间: 2021-05-14 18:17:53
class Solution { /** * @param Integer $num * @return Integer */ function numberOfSteps($num) { $ans = 0; while ( $num != 0 ) { $num = ( $num % 2 == 0 ) ? $num/2: $num-1; $ans++; } return $ans; } }