题解
2023-08-06 16:07:52
发布于:浙江
4阅读
0回复
0点赞
洛谷原题,但是保留5个场宽
本题代码:
#include <iostream>
using namespace std;
int n,ans[20],v[20];
void f(int x){
if(x > n){
for(int i = 1;i <= n;i++) cout << ans[i] << " ";
cout << endl;
return ;
}
for(int i = 1;i <= n;i++){
if(v[i] == 0){
ans[x] = i;
v[i] = 1;
f(x + 1);
v[i] = 0;
}
}
}
int main(){
cin >> n;
f(1);
return 0;
}
洛谷原题:
#include <iostream>
using namespace std;
int n,ans[20],v[20];
void f(int x){
if(x > n){
for(int i = 1;i <= n;i++) printf("%5d",ans[i]);
cout << endl;
return ;
}
for(int i = 1;i <= n;i++){
if(v[i] == 0){
ans[x] = i;
v[i] = 1;
f(x + 1);
v[i] = 0;
}
}
}
int main(){
cin >> n;
f(1);
return 0;
}
这里空空如也
有帮助,赞一个