全排列问题
输出自然数1到n所有不重复的排列(n的全排列),所产生的任一数字序列中不允许出现重复的数字。
样例输入1
3
样例输出1
1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1
code:
1 #include <bits/stdc++.h> 2 using namespace std; 3 int a[101],n; 4 bool v[21]; 5 void dfs(int k){ 6 if(k == n+1){ 7 for(int i = 1;i<=n;i++){ 8 cout<< a[i]<<" "; 9 } 10 cout<<endl; 11 return; 12 } 13 for(int i = 1;i<=n;i++){ 14 if(!v[i]){ 15 a[k] = i; 16 v[i] = true; 17 dfs(k+1); 18 v[i] = 0; 19 } 20 } 21 22 } 23 int main(){ 24 cin>>n; 25 dfs(1); 26 }
 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号