uk Bai nay dung thuat toan quay luibài này , lúc trước tớ có 1 người bạn có cách giải = phương pháp khá hay (vì nó đơn giản) nhưng chỉ áp dụng được <18 phần tử với mỗi phần tử là 1 chữ số
đại ý là thế này
lấy vd này chẳng hạn nhé
a[1]=6;a[2]=2;a[3]=8
bạn sắp xếp chúng (tăng giảm gì cũng được
-> (2,6,8)
cho chương trình duyệt từ 268 -> 862 (phần còn lại chắc bạn hiểu phải làm gì ^^)
còn đây là ct quay lui chuẩnprogram lietkehoanvi; var N,m:integer; a,o:array[1..1000] of integer; b:array[1..1000] of boolean; procedure out; var i:integer; begin for i:=1 to N do write(o[i]); end; procedure lietke(n:integer); var i:integer; begin if n=N+1 then out; else for i:=1 to N do if b[i] then begin b[i]:=false; o[n]:=a[i]; lietke(n+1); b[i]:=true; end; end; begin write('nhap so phan tu ');readln(N); for m:=1 to N do begin write('nhap phan tu thu ',m,' ');readln(a[m]); end; lietke(1); readln end.sorry nếu code trên có lỗi (vì tớ code thẳng , không bug ^^)
Thu tuc Try nhu thu tuc liet ke cua ban