Skip to content

Commit a037900

Browse files
committed
feat: add solutions to lc problem: No.1837
No.1837.Sum of Digits in Base K
1 parent 2d77db7 commit a037900

File tree

7 files changed

+152
-25
lines changed

7 files changed

+152
-25
lines changed

solution/1800-1899/1837.Sum of Digits in Base K/README.md

Lines changed: 59 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,11 @@
4141

4242
<!-- 这里可写通用的实现逻辑 -->
4343

44-
将 n 除 k 取余,直至为 0,余数相加求得结果。
44+
**方法一:数学**
45+
46+
我们将 $n$ 除 $k$ 取余,直至为 $0$,余数相加即可得到结果。
47+
48+
时间复杂度 $O(\log_{k}n)$,空间复杂度 $O(1)$。
4549

4650
<!-- tabs:start -->
4751

@@ -52,11 +56,11 @@
5256
```python
5357
class Solution:
5458
def sumBase(self, n: int, k: int) -> int:
55-
res = 0
56-
while n != 0:
57-
n, t = divmod(n, k)
58-
res += t
59-
return res
59+
ans = 0
60+
while n:
61+
ans += n % k
62+
n //= k
63+
return ans
6064
```
6165

6266
### **Java**
@@ -66,16 +70,62 @@ class Solution:
6670
```java
6771
class Solution {
6872
public int sumBase(int n, int k) {
69-
int res = 0;
73+
int ans = 0;
7074
while (n != 0) {
71-
res += (n % k);
75+
ans += n % k;
76+
n /= k;
77+
}
78+
return ans;
79+
}
80+
}
81+
```
82+
83+
### **C++**
84+
85+
```cpp
86+
class Solution {
87+
public:
88+
int sumBase(int n, int k) {
89+
int ans = 0;
90+
while (n) {
91+
ans += n % k;
7292
n /= k;
7393
}
74-
return res;
94+
return ans;
7595
}
96+
};
97+
```
98+
99+
### **Go**
100+
101+
```go
102+
func sumBase(n int, k int) (ans int) {
103+
for n > 0 {
104+
ans += n % k
105+
n /= k
106+
}
107+
return
76108
}
77109
```
78110

111+
### **JavaScript**
112+
113+
```js
114+
/**
115+
* @param {number} n
116+
* @param {number} k
117+
* @return {number}
118+
*/
119+
var sumBase = function (n, k) {
120+
let ans = 0;
121+
while (n) {
122+
ans += n % k;
123+
n = Math.floor(n / k);
124+
}
125+
return ans;
126+
};
127+
```
128+
79129
### **...**
80130

81131
```

solution/1800-1899/1837.Sum of Digits in Base K/README_EN.md

Lines changed: 54 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,28 +42,74 @@
4242
```python
4343
class Solution:
4444
def sumBase(self, n: int, k: int) -> int:
45-
res = 0
46-
while n != 0:
47-
n, t = divmod(n, k)
48-
res += t
49-
return res
45+
ans = 0
46+
while n:
47+
ans += n % k
48+
n //= k
49+
return ans
5050
```
5151

5252
### **Java**
5353

5454
```java
5555
class Solution {
5656
public int sumBase(int n, int k) {
57-
int res = 0;
57+
int ans = 0;
5858
while (n != 0) {
59-
res += (n % k);
59+
ans += n % k;
6060
n /= k;
6161
}
62-
return res;
62+
return ans;
6363
}
6464
}
6565
```
6666

67+
### **C++**
68+
69+
```cpp
70+
class Solution {
71+
public:
72+
int sumBase(int n, int k) {
73+
int ans = 0;
74+
while (n) {
75+
ans += n % k;
76+
n /= k;
77+
}
78+
return ans;
79+
}
80+
};
81+
```
82+
83+
### **Go**
84+
85+
```go
86+
func sumBase(n int, k int) (ans int) {
87+
for n > 0 {
88+
ans += n % k
89+
n /= k
90+
}
91+
return
92+
}
93+
```
94+
95+
### **JavaScript**
96+
97+
```js
98+
/**
99+
* @param {number} n
100+
* @param {number} k
101+
* @return {number}
102+
*/
103+
var sumBase = function (n, k) {
104+
let ans = 0;
105+
while (n) {
106+
ans += n % k;
107+
n = Math.floor(n / k);
108+
}
109+
return ans;
110+
};
111+
```
112+
67113
### **...**
68114

69115
```
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
class Solution {
2+
public:
3+
int sumBase(int n, int k) {
4+
int ans = 0;
5+
while (n) {
6+
ans += n % k;
7+
n /= k;
8+
}
9+
return ans;
10+
}
11+
};
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
func sumBase(n int, k int) (ans int) {
2+
for n > 0 {
3+
ans += n % k
4+
n /= k
5+
}
6+
return
7+
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
class Solution {
22
public int sumBase(int n, int k) {
3-
int res = 0;
3+
int ans = 0;
44
while (n != 0) {
5-
res += (n % k);
5+
ans += n % k;
66
n /= k;
77
}
8-
return res;
8+
return ans;
99
}
1010
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/**
2+
* @param {number} n
3+
* @param {number} k
4+
* @return {number}
5+
*/
6+
var sumBase = function (n, k) {
7+
let ans = 0;
8+
while (n) {
9+
ans += n % k;
10+
n = Math.floor(n / k);
11+
}
12+
return ans;
13+
};
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
class Solution:
22
def sumBase(self, n: int, k: int) -> int:
3-
res = 0
4-
while n != 0:
5-
n, t = divmod(n, k)
6-
res += t
7-
return res
3+
ans = 0
4+
while n:
5+
ans += n % k
6+
n //= k
7+
return ans

0 commit comments

Comments
 (0)