PDA

View Full Version : help me! pascal!



jolly1267
06-12-2009, 13:17
nhập 1 số s (s:word), ghi tất cả các số được tạo ra bằng cách hoán vị các chữ số của s vào mảng a.
s có tối đa 5 chữ số, nên số phần tử của a là 5! , phải không nhỉ ?

jolly1267
10-12-2009, 20:17
sao chẳng có bác nào giúp em thế nhỉ !

bumzunpilo
12-12-2009, 19:54
Bài này bạn liệt kê theo thứ tự từ điển bằng thuật toán sinh.
Đầu tiên viết cấu hình nhỏ nhất (tức là số nhỏ nhất tạo từ các chữ số của s đó). Xét từ phải sang nhé, nếu thấy số đứng trứoc lớn hơn số đứng sau(nhớ là từ phải sang đó) thì đổi chỗ 2 số đó, các số ở giữa thì hoán vị đối xứng cho nhau. Bạn nên tham khảo thêm trong cuốn cấu trúc dữ liệu và giải thuật của thầy Lê Minh Hoàng, có bài này đó.