feat(Go-Tool):2021/06/16 新增一个数拆分成N个数且N个数相加和等于这个数工具、测试方法

This commit is contained in:
Huangzj
2021-06-16 11:57:20 +08:00
parent 092ab58276
commit 9ba69e98d5
6 changed files with 254 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
/*
* @Author : huangZJ
* @Time : 2021/6/16 10:50
* @Description
*/
package splitNumToN
import (
"Go-Tool/util/rand"
"fmt"
)
//将一个数拆解成三个
func SplitNumTo3(num int) {
randNumList := make([]int, 0)
var count int
for i := 0; i < 2; i++ {
randNum := getRandValue(num-count, 3-1-i)
randNumList = append(randNumList, randNum)
count = count + randNum
}
randNumList = append(randNumList, num-count)
for _, num := range randNumList {
fmt.Print(fmt.Sprintf("%d ", num))
}
}
//num 被随机的数
//count count + 1 = 总随机数数量
func getRandValue(num int, count int) int {
minValue := num - 6*count
if minValue <= 0 {
minValue = 1
}
maxValue := num - count*1
if maxValue > 6 {
maxValue = 6
}
return rand.GetRandInt(minValue, maxValue)
}