File tree Expand file tree Collapse file tree 5 files changed +64
-8
lines changed
solution/0200-0299/0258.Add Digits Expand file tree Collapse file tree 5 files changed +64
-8
lines changed Original file line number Diff line number Diff line change 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### **...**
Original file line number Diff line number Diff 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 number Diff line number Diff line change 1+ class Solution {
2+ public:
3+ int addDigits (int num) {
4+ return (num - 1 ) % 9 + 1 ;
5+ }
6+ };
Original file line number Diff line number Diff line change 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 number Diff line number Diff line change 1+ class Solution :
2+ def addDigits (self , num : int ) -> int :
3+ return 0 if num == 0 else (num - 1 ) % 9 + 1
You can’t perform that action at this time.
0 commit comments