请问为什么在这种情况下u会自动归零
查看原帖
请问为什么在这种情况下u会自动归零
692647
tanghg楼主2022/6/3 21:28

在递归中的话if后难道不会直接结束吗?

#include <iostream>
#pragma  optimize(2)
using namespace std;
const long long MAX=14;
typedef int ll;
ll n,a[MAX];
int use[MAX];
void dfs(ll u){
    if(u==n){
        for (int i = 0; i <n ; ++i) {
            cout<<"    "<<a[i];
        }
        cout<<endl;
    }else{
        for (int i = 1; i <=n ; ++i) {
            if(!use[i]){
                use[i]= 1;
                a[u]=i;
                dfs(u+1);
                use[i]= 0;
            }
        }
    }
}
int main() {
    cin>>n;
    dfs(0);
    return 0;
}

谢谢

2022/6/3 21:28
加载中...