30/09/2018, 19:00
Chỉ em loại bớt trường hợp bị trùng trong bài sắp xếp n người vào 1 bàn
Em làm bài sắp xếp n người vào 1 bàn, em đã liệt kê được tất cả cách xếp rồi nhưng vẫn còn 1 cái là trường hợp xếp 1 người vào nhiều chỗ,đây là code của em
void xuathoanvi(nguoi b[],int n){
for (int i=1;i<=n;i++)
printf("%s ",b[i]);
printf("
");
}
void sapxep(nguoi a[],int n,int j,nguoi b[]){
for (int i=1;i<=n;i++){
b[j]=a[i];
if (j==n) xuathoanvi(b,n);
else sapxep(a,n,j+1,b);
}
}
ai có cách nào để loại bớt thì chỉ cho em với
Bài liên quan
Đọc đề của bạn mình nghĩ ngay đến phương án này nhưng mà hình như không ổn lắm, vì không nên dùng nhiều vòng for lồng nhau k biết có cách nào giải bài này mà k dùng công thức hoán vị không nhể
https://www.google.com/search?q=how+to+make+n+for+nested
À mà có được dùng đệ quy không
How to make n nested for loops recursively?
Mà trường hợp trùng nhau thì chỉ cần
if (tất cả khác nhau)
là được mà như ở cái link SO trên người ta cho được các counter vào 1 cái mảng counters, giờ chỉ cần cho tất cả các phần tử trong mảng đó khác nhau là đượcem dùng phương pháp quay lui đó anh (có đệ quy) để em thử cái if kia
Mềnh cũng chẳng biết thuật toán mấy đâu bạn cứ ngâm cứu xem, không thì phải chờ các cao thủ vào trợ giúp
*97 nhá đồng chí :V
ồ tưởng lớn hơn cơ
Code python thế này chắc đúng roài nhể
chính nó
Ha ha cuối cùng cũng làm ra bác à sau cả một buổi suy nghĩ
Ngon vậy :v share code đuê :v
OK code đây
tự làm nên khá dài
giaosudauto
Giaosudauto Hacker Blogger
giống với thuật toán của mình đã làm rồi
Có vẻ gọn gàng hơn???