Mọi người giải thích giúp em code sinh quay lui này với ạ!!
int a[10], n, check[10], k;
void qlhoanvi(int i){
FRR(j, 1, n){
if(check[j] == 0){
a[i] = j;
if(i == n) OUT();
else{
check[j] = 1;
qlhoanvi(i+1);
check[j]= 0;
}
}
}
}
int main(){
cin >> n;
qlhoanvi(1);
}
Nhất là đoạn
check[j] = 1;
qlhoanvi(i+1);
check[j]= 0;
nó chạy như nào ah???