2 solutions

  • 1
    @ 2024-8-1 15:07:16

    包对的

    #include<bits/stdc++.h>
    using namespace std;
    const int N=10;
    int ans[N],n;
    bool st[N];
    void dfs(int u)
    {
    	if(u==n+1)
    	{
    		for(int i=1;i<=n;i++)
    		{
    			cout<<ans[i]<<" ";
    		}
    		cout<<endl;
    		return;
    	}
    	for(int i=1;i<=n;i++)
    	{
    		if(st[i]==0)
    		{
    			st[i]=1;
    			ans[u]=i;
    			dfs(u+1);
    			st[i]=0;
    		}
    	}
    }
    int main()
    {
    	cin>>n;
    	dfs(1);
    	return 0;
    }
    
    • -1
      @ 2024-7-9 11:25:18
      #include<bits/stdc++.h>
      using namespace std;
      const int N=10;
      int ans[N],n;
      bool st[N];
      void dfs(int u)
      {
      	if(u==n+1)
      	{
      		for(int i=1;i<=n;i++)
      			cout<<ans[i]<<" ";
      		cout<<endl;
      		return 																												;
      	}
      	for(int i=1;i<=n;i++)
      		if(st[i]==0)
      		{
      			st[i]=1;
      			ans[u]=i;
      			dfs(u+1);
      			st[i]=0;
      		}
      }
      int main()
      {
      	cin>>n;
      	dfs(1);
      	return 0;
      }
      
      • 1

      Information

      ID
      231
      Time
      1000ms
      Memory
      256MiB
      Difficulty
      3
      Tags
      # Submissions
      21
      Accepted
      8
      Uploaded By