测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A70653. n个数取出r个数排列

编程题 基础
知识点

题目描述

1 \sim n 任意挑出 r 个数进行排列,请从小到大输出所有可能的排列结果。

如:n=5r=2,则输出结果如下

1 2
1 3
1 4
1 5
2 1
2 3
2 4
2 5
3 1
3 2
3 4
3 5
4 1
4 2
4 3
4 5
5 1
5 2
5 3
5 4

输入格式

两个整数 nrnr 都是 2 \sim 6 之间的整数)

输出格式

1 \sim n 中取出 r 个数的排列结果!

输入输出样例

输入 #1
5 2
输出 #1
1 2
1 3
1 4
1 5
2 1
2 3
2 4
2 5
3 1
3 2
3 4
3 5
4 1
4 2
4 3
4 5
5 1
5 2
5 3
5 4

说明/提示

## 思路

用回溯生成排列:选一个未用数字 → 递归 → 撤销。

## 步骤

1. 读入 $n$ 或序列。
2. DFS/回溯枚举每个位置。
3. 按题面顺序输出所有排列。