35 lines
436 B
Go
35 lines
436 B
Go
//go:build ignore
|
|
|
|
// 组合的输出 从 n 个元素(1-n)中选取 r 个数
|
|
package main
|
|
|
|
import "fmt"
|
|
|
|
var (
|
|
n int
|
|
r int
|
|
path []int
|
|
)
|
|
|
|
func dfs(x int) {
|
|
// Return
|
|
if len(path) >= r {
|
|
for _, v := range path {
|
|
fmt.Printf("%d ", v)
|
|
}
|
|
fmt.Printf("\n")
|
|
return
|
|
}
|
|
// Traverse
|
|
for i := x; i <= n; i++ {
|
|
path = append(path, i)
|
|
dfs(i + 1)
|
|
path = path[:len(path)-1]
|
|
}
|
|
}
|
|
|
|
func main() {
|
|
fmt.Scan(&n, &r)
|
|
dfs(1)
|
|
}
|