thehanged @ 2024-03-11 18:27:59
不知道为什么编译失败。 我测试了gcc和msvc都能编译成功,这就奇怪了
#include <iostream>
using namespace std;
const int N = 12;
int n, k;
int solution[N]; // 储存解决方案
bool st[N]; // 标志当前位置有没有被使用过
dfs(int x){
if(x == k){ // 枚举到最后一位
for(int i = 0; i < k; ++i) {
cout << solution[i] << " ";
}
puts("");
}
for(int i = 1; i <= n; ++i){ // 枚举n名学生
if(!st[i]){
solution[x] = i;
// 往下枚举
st[i] = true;
dfs(x + 1);
// 恢复现场
st[i] = false;
}
}
}
int main(){
cin >> n >> k;
dfs(0);
return 0;
}
by thehanged @ 2024-03-11 18:32:30
没事了,把void加上去。
编译器不太智能,return 0,返回值为void不写,在现在编译器中是完全没有问题的
by _xm_ @ 2024-03-11 18:38:25
还能这么写?