我试图编写一些代码,该代码将生成七组七个七个唯一的,非重复的数字,范围从1到49。但是,当我运行代码时,它陷入了无限循环的无休止地生成单个数字的过程。仅当我在main()下包括一个小if-else循环时才发生这种情况,该循环的功能是检查重复的数字。重复检查背后的逻辑是否存在问题?package mainimport "fmt"import "math/rand"import "time"func main() { var j [7]int var n []int rand.Seed(time.Now().UTC().UnixNano()) for m := 0; m < 7; m++ { for i := 0; i < 8; i++ { if i < 7 { var duplicate int = randInt(1, 49) n = append(n, duplicate) if i != 0 { if !integerinarray(duplicate, n) { j[i] = duplicate } else { i-- } } else { j[i] = duplicate } fmt.Print(j[i], " ") } else { fmt.Println("\n") //fmt.Println(n) } } }}func randInt(min int, max int) int { return min + rand.Intn(max-min)}func integerinarray(a int, s []int) bool { for _, b := range s { if b == a { return true } } return false}
3 回答
- 3 回答
- 0 关注
- 321 浏览
添加回答
举报
0/150
提交
取消