🐶把所有的情况算出来,然后随机选择 ```go package main import "fmt" func solution(n, sum, depth int, path []int, ans *[][]int) { if depth == 0 { if sum == 0 { dst := make([]int, len(path)) copy(dst, path) *ans = append(*ans, dst) } return } for i := 1; i m { // 如果最大值超过了 m ,则将其设置为 m max = m } nums[i] = rand.Intn(max) + 1 // 随机生成当前随机数 n -= nums[i] // 减去已经生成的随机数 } } fmt.Println(nums) }