Skip to content

Commit 19d4678

Browse files
committed
feat: add solutions to leetcode problem: No.0258
1 parent 176fae3 commit 19d4678

File tree

5 files changed

+64
-8
lines changed

5 files changed

+64
-8
lines changed

solution/0200-0299/0258.Add Digits/README.md

+33-1
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,54 @@
2121

2222
<!-- 这里可写通用的实现逻辑 -->
2323

24+
题目要求的数叫做“数根”,我们把 1~30 的数根列出来:
25+
26+
```
27+
原数: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
28+
数根: 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3
29+
```
30+
31+
可以看到,数根 9 个为一组,循环出现。我们可以得出下面的规律:
32+
33+
- n = 0:数根是 0
34+
- n 是 9 的倍数:数根是 9
35+
- n 不是 9 的倍数:数根是 n % 9
36+
37+
将上面的规律用式子:`(n - 1) % 9 + 1` 统一表达。
38+
2439
<!-- tabs:start -->
2540

2641
### **Python3**
2742

2843
<!-- 这里可写当前语言的特殊实现逻辑 -->
2944

3045
```python
31-
46+
class Solution:
47+
def addDigits(self, num: int) -> int:
48+
return 0 if num == 0 else (num - 1) % 9 + 1
3249
```
3350

3451
### **Java**
3552

3653
<!-- 这里可写当前语言的特殊实现逻辑 -->
3754

3855
```java
56+
class Solution {
57+
public int addDigits(int num) {
58+
return (num - 1) % 9 + 1;
59+
}
60+
}
61+
```
62+
63+
### **C++**
3964

65+
```cpp
66+
class Solution {
67+
public:
68+
int addDigits(int num) {
69+
return (num - 1) % 9 + 1;
70+
}
71+
};
4072
```
4173
4274
### **...**

solution/0200-0299/0258.Add Digits/README_EN.md

+18-1
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,30 @@ Could you do it without any loop/recursion in O(1) runtime?</p>
3131
### **Python3**
3232

3333
```python
34-
34+
class Solution:
35+
def addDigits(self, num: int) -> int:
36+
return 0 if num == 0 else (num - 1) % 9 + 1
3537
```
3638

3739
### **Java**
3840

3941
```java
42+
class Solution {
43+
public int addDigits(int num) {
44+
return (num - 1) % 9 + 1;
45+
}
46+
}
47+
```
48+
49+
### **C++**
4050

51+
```cpp
52+
class Solution {
53+
public:
54+
int addDigits(int num) {
55+
return (num - 1) % 9 + 1;
56+
}
57+
};
4158
```
4259
4360
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
class Solution {
2+
public:
3+
int addDigits(int num) {
4+
return (num - 1) % 9 + 1;
5+
}
6+
};
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
public class Solution {
2-
public int addDigits(int num) {
3-
4-
return 1 + (num - 1) % 9;
5-
6-
}
1+
class Solution {
2+
public int addDigits(int num) {
3+
return (num - 1) % 9 + 1;
4+
}
75
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
class Solution:
2+
def addDigits(self, num: int) -> int:
3+
return 0 if num == 0 else (num - 1) % 9 + 1

0 commit comments

Comments
 (0)