Skip to content

Commit dc8e7d5

Browse files
committedAug 8, 2021
feat: add solutions to lc problem: No.1342.Number of Steps to Reduce a
Number to Zero
1 parent 429774c commit dc8e7d5

File tree

6 files changed

+149
-25
lines changed

6 files changed

+149
-25
lines changed
 

‎solution/1300-1399/1342.Number of Steps to Reduce a Number to Zero/README.md

+53-9
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
<li><code>0 &lt;= num &lt;= 10^6</code></li>
4949
</ul>
5050

51-
5251
## 解法
5352

5453
<!-- 这里可写通用的实现逻辑 -->
@@ -60,7 +59,16 @@
6059
<!-- 这里可写当前语言的特殊实现逻辑 -->
6160

6261
```python
63-
62+
class Solution:
63+
def numberOfSteps(self, num: int) -> int:
64+
res = 0
65+
while num:
66+
if (num & 1) == 0:
67+
num >>= 1
68+
else:
69+
num -= 1
70+
res += 1
71+
return res
6472
```
6573

6674
### **Java**
@@ -70,19 +78,55 @@
7078
```java
7179
class Solution {
7280
public int numberOfSteps(int num) {
73-
int cnt = 0;
81+
int res = 0;
7482
while (num != 0) {
75-
if (num % 2 == 1)
76-
num--;
77-
else
78-
num /= 2;
79-
cnt++;
83+
if ((num & 1) == 0) {
84+
num >>= 1;
85+
} else {
86+
--num;
87+
}
88+
++res;
8089
}
81-
return cnt;
90+
return res;
8291
}
8392
}
8493
```
8594

95+
### **C++**
96+
97+
```cpp
98+
class Solution {
99+
public:
100+
int numberOfSteps(int num) {
101+
int res = 0;
102+
while (num)
103+
{
104+
if ((num & 1) == 0) num >>= 1;
105+
else --num;
106+
++res;
107+
}
108+
return res;
109+
}
110+
};
111+
```
112+
113+
### **Go**
114+
115+
```go
116+
func numberOfSteps(num int) int {
117+
res := 0
118+
for num != 0 {
119+
if (num & 1) == 0 {
120+
num >>= 1
121+
} else {
122+
num--
123+
}
124+
res++
125+
}
126+
return res
127+
}
128+
```
129+
86130
### **...**
87131

88132
```

‎solution/1300-1399/1342.Number of Steps to Reduce a Number to Zero/README_EN.md

+53-9
Original file line numberDiff line numberDiff line change
@@ -47,35 +47,79 @@ Step 4) 1 is odd; subtract 1 and obtain 0.
4747
<li><code>0 &lt;= num &lt;= 10^6</code></li>
4848
</ul>
4949

50-
5150
## Solutions
5251

5352
<!-- tabs:start -->
5453

5554
### **Python3**
5655

5756
```python
58-
57+
class Solution:
58+
def numberOfSteps(self, num: int) -> int:
59+
res = 0
60+
while num:
61+
if (num & 1) == 0:
62+
num >>= 1
63+
else:
64+
num -= 1
65+
res += 1
66+
return res
5967
```
6068

6169
### **Java**
6270

6371
```java
6472
class Solution {
6573
public int numberOfSteps(int num) {
66-
int cnt = 0;
74+
int res = 0;
6775
while (num != 0) {
68-
if (num % 2 == 1)
69-
num--;
70-
else
71-
num /= 2;
72-
cnt++;
76+
if ((num & 1) == 0) {
77+
num >>= 1;
78+
} else {
79+
--num;
80+
}
81+
++res;
7382
}
74-
return cnt;
83+
return res;
7584
}
7685
}
7786
```
7887

88+
### **C++**
89+
90+
```cpp
91+
class Solution {
92+
public:
93+
int numberOfSteps(int num) {
94+
int res = 0;
95+
while (num)
96+
{
97+
if ((num & 1) == 0) num >>= 1;
98+
else --num;
99+
++res;
100+
}
101+
return res;
102+
}
103+
};
104+
```
105+
106+
### **Go**
107+
108+
```go
109+
func numberOfSteps(num int) int {
110+
res := 0
111+
for num != 0 {
112+
if (num & 1) == 0 {
113+
num >>= 1
114+
} else {
115+
num--
116+
}
117+
res++
118+
}
119+
return res
120+
}
121+
```
122+
79123
### **...**
80124

81125
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class Solution {
2+
public:
3+
int numberOfSteps(int num) {
4+
int res = 0;
5+
while (num)
6+
{
7+
if ((num & 1) == 0) num >>= 1;
8+
else --num;
9+
++res;
10+
}
11+
return res;
12+
}
13+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
func numberOfSteps(num int) int {
2+
res := 0
3+
for num != 0 {
4+
if (num & 1) == 0 {
5+
num >>= 1
6+
} else {
7+
num--
8+
}
9+
res++
10+
}
11+
return res
12+
}
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
class Solution {
22
public int numberOfSteps(int num) {
3-
int cnt = 0;
3+
int res = 0;
44
while (num != 0) {
5-
if (num % 2 == 1)
6-
num--;
7-
else
8-
num /= 2;
9-
cnt++;
5+
if ((num & 1) == 0) {
6+
num >>= 1;
7+
} else {
8+
--num;
9+
}
10+
++res;
1011
}
11-
return cnt;
12+
return res;
1213
}
1314
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class Solution:
2+
def numberOfSteps(self, num: int) -> int:
3+
res = 0
4+
while num:
5+
if (num & 1) == 0:
6+
num >>= 1
7+
else:
8+
num -= 1
9+
res += 1
10+
return res

0 commit comments

Comments
 (0)