添加 18 题

This commit is contained in:
YDZ
2020-08-12 20:11:32 +08:00
parent e5bd520fdd
commit d0cda0c904
72 changed files with 4008 additions and 0 deletions

View File

@ -0,0 +1,13 @@
package leetcode
func addDigits(num int) int {
for num > 9 {
cur := 0
for num != 0 {
cur += num % 10
num /= 10
}
num = cur
}
return num
}

View File

@ -0,0 +1,52 @@
package leetcode
import (
"fmt"
"testing"
)
type question258 struct {
para258
ans258
}
// para 是参数
// one 代表第一个参数
type para258 struct {
one int
}
// ans 是答案
// one 代表第一个答案
type ans258 struct {
one int
}
func Test_Problem258(t *testing.T) {
qs := []question258{
question258{
para258{38},
ans258{2},
},
question258{
para258{88},
ans258{7},
},
question258{
para258{96},
ans258{6},
},
}
fmt.Printf("------------------------Leetcode Problem 258------------------------\n")
for _, q := range qs {
_, p := q.ans258, q.para258
fmt.Printf("【input】:%v 【output】:%v\n", p, addDigits(p.one))
}
fmt.Printf("\n\n\n")
}

View File

@ -0,0 +1,47 @@
# [258. Add Digits](https://leetcode.com/problems/add-digits/)
## 题目
Given a non-negative integer `num`, repeatedly add all its digits until the result has only one digit.
**Example**:
```
Input: 38
Output: 2
Explanation: The process is like: 3 + 8 = 11, 1 + 1 = 2.
Since 2 has only one digit, return it.
```
**Follow up**: Could you do it without any loop/recursion in O(1) runtime?
## 题目大意
给定一个非负整数 num反复将各个位上的数字相加直到结果为一位数。
## 解题思路
- 给定一个非负整数,反复加各个位上的数,直到结果为一位数为止,最后输出这一位数。
- 简单题。按照题意循环累加即可。
## 代码
```go
package leetcode
func addDigits(num int) int {
for num > 9 {
cur := 0
for num != 0 {
cur += num % 10
num /= 10
}
num = cur
}
return num
}
```