#include<stdio.h>
#include<conio.h>
#define N 21
int n, p[N], b[N], d = 0;
void khoitao() {
printf("nhap n = ");
scanf_s("%d", &n);
for (int i = 1; i <= n; i++) {
b[i] = 1;
}
}
void xuli() {
int i;
d++;
printf("\nhoan vi thu %3d", d);
for (i = 1; i <= n; i++) {
printf("%3d", p[i]);
}
}
void hoanvi(int k) {
int j;
for (j = 1; j <= n; j++) {
if (b[j]==1) {
p[k] = j; b[j] = 0;
if (k == n) {
xuli();
_getch();
return;
}
else
hoanvi(k + 1);
b[j] = 1;
}
}
}
int main() {
khoitao();
hoanvi(1);
_getch();
return 0;
}
ai giải thích giùm em tại sao kết quả lại ra dc 1 2 3 vs ak thực sự e chưa hiểu đệ quy lắm
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?