Mọi người cho em hỏi hai đoạn code khác nhau chỗ nào ạ, đoạn 1 chạy được còn đoạn 2 thì không ạ. (In ra hoán vị của n chữ số đầu tiên)
#include<iostream>
using namespace std;
int a[10], dd[10]={0}, n;
void xuat(){
for(int i=1; i<=n; i++)
cout<<a[i];
cout<<endl;
}
void backtrack(int i){
if(i>n) xuat();
for(int j=1; j<=n; j++){
if(dd[j]==0){
dd[j]=1;
a[i]=j;
backtrack(i+1);
dd[j]=0;
}
}
}
int main(){
cin>>n;
backtrack(1);
return 0;
}
Đoạn 2:
#include<iostream>
using namespace std;
int a[10], dd[10]={1}, n;
void xuat(){
for(int i=1; i<=n; i++)
cout<<a[i];
cout<<endl;
}
void backtrack(int i){
if(i>n) xuat();
for(int j=1; j<=n; j++){
if(dd[j]==1){
dd[j]=0;
a[i]=j;
backtrack(i+1);
dd[j]=1;
}
}
}
int main(){
cin>>n;
backtrack(1);
return 0;
}