[Easy] LeetCode 1342. Number of Steps to Reduce a Number to Zero
链接: https://leetcode.com/problems/number-of-steps-to-reduce-a-number-to-zero/
题目描述:
Given a non-negative integer num, return the number of steps to reduce it to zero. If the current number is even, you have to divide it by 2, otherwise, you have to subtract 1 from it.
给你一个非负整数 num ,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。
Example 1:
Input: num = 14
Output: 6
Explanation:
Step 1) 14 is even; divide by 2 and obtain 7.
Step 2) 7 is odd; subtract 1 and obtain 6.
Step 3) 6 is even; divide by 2 and obtain 3.
Step 4) 3 is odd; subtract 1 and obtain 2.
Step 5) 2 is even; divide by 2 and obtain 1.
Step 6) 1 is odd; subtract 1 and obtain 0.
Example 2:
Input: num = 8
Output: 4
Explanation:
Step 1) 8 is even; divide by 2 and obtain 4.
Step 2) 4 is even; divide by 2 and obtain 2.
Step 3) 2 is even; divide by 2 and obtain 1.
Step 4) 1 is odd; subtract 1 and obtain 0.
Example 3:
Input: num = 123
Output: 12
Constraints:
- 0 <= num <= 10^6
Tag: Pre-Sum
解题思路
很直接,简单
解法一:
class Solution {
public int numberOfSteps (int num) {
int step = 0;
while(num > 0){
if(num %2 == 0) num/=2;
else num-=1;
step++;
}
return step;
}
}
本文介绍了LeetCode上的问题1342:给定一个非负整数,如何通过一系列操作使其归零,具体操作为若数字为偶数则除以2,若为奇数则减1,直至该数字变为0。文章提供了详细的解题思路及代码实现。

849

被折叠的 条评论
为什么被折叠?



