【发布时间】:2021-12-30 17:05:35
【问题描述】:
#include <iostream>
using namespace std;
int n, m, x[20], p[20];
void display(){
for(int i = 1 ; i <= n; ++i)
cout << x[i] << ' ';
cout << "\n";
}
void bkt(int k){
for(int i = n; i <= m; ++i)
if(!p[i]){
x[k] = i;
p[i] = 1;
if(k<n)
bkt(k+1);
else
display();
p[i] = 0;
}
}
int main()
{ cin >> n >> m;
bkt(1);
return 0;
}
这段代码应该做从 n 到 m 的排列,但它不起作用,我不知道我做错了什么。我尝试了一组示例,例如 4 和 6,它应该会显示
4 5 6
4 6 5
5 4 6
5 6 4
6 4 5
6 5 4
但它不会在控制台中显示任何内容,只返回 0。
【问题讨论】:
标签: c++