递归输出1到n的全排列c++
时间: 2024-01-01 12:06:12 浏览: 95
好的,这里是递归输出1到n的全排列的C++代码:
```c++
#include <iostream>
using namespace std;
void permute(int arr[], int start, int end) {
if (start == end) {
for (int i = 0; i <= end; i++) {
cout << arr[i] << " ";
}
cout << endl;
} else {
for (int i = start; i <= end; i++) {
swap(arr[start], arr[i]);
permute(arr, start + 1, end);
swap(arr[start], arr[i]);
}
}
}
int main() {
int n;
cout << "Enter the value of n: ";
cin >> n;
int arr[n];
for (int i = 0; i < n; i++) {
arr[i] = i + 1;
}
permute(arr, 0, n - 1);
return 0;
}
```
这个程序使用了递归来生成1到n的全排列。在每一次递归中,我们将数组中的一个元素与其它元素交换,然后递归地生成剩余元素的全排列。当我们到达数组的末尾时,我们输出当前的排列。
阅读全文