
Lập trình liệt kê các xâu tạo bởi hoán vị của các chữ cái A,B,C,D,E,F mà trong đó có chứa xâu DEF.
Friday, December 19, 2014
giải thuật đệ quy, hoán vị
Lập trình liệt kê các xâu
tạo bởi hoán vị của các chữ cái A,B,C,D,E,F mà trong đó có chứa xâu DEF.
Ngoài ra có thể tham khảo thêm bài :
Bài 2: Liệt kê các xâu tạo bởi hoán vị của các chữ A,B,C,D,E,F mà D,E,F đứng cạnh nhau.
http://www.nguyenvandung.net/2014/12/liet-ke-cac-xau-tao-boi-hoan-vi-cua-cac.html
Ngoài ra có thể tham khảo thêm bài :
Bài 2: Liệt kê các xâu tạo bởi hoán vị của các chữ A,B,C,D,E,F mà D,E,F đứng cạnh nhau.
http://www.nguyenvandung.net/2014/12/liet-ke-cac-xau-tao-boi-hoan-vi-cua-cac.html
Bài sử dụng giải thuật đệ quy quay lui.
Code c/c++
#include <stdio.h>
#include <conio.h>
char s[5]="ABCX",a[5];
int b[7],dem=0;
void xuat()
{
char c[7];
int i=0,j=0;
c[6]=NULL;
while(a[i]!=NULL)
{
if (a[i]=='X')
{
c[j]='D';
c[j+1]='E';
c[j+2]='F';
j=j+3;
}
else
{
c[j]=a[i];
j++;
}
i++;
}
dem++;
printf("\n%d",dem);
printf("\n%s",c);
}
void hoanvi(int
i)
{
for(int
j=0;j<4;j++)
if (b[j])
{
a[i]=s[j];
if (i==3) xuat();
else
{
b[j]=0;
hoanvi(i+1);
b[j]=1;
}
}
}
int main()
{
a[4]=NULL;
for(int
i=0;i<6;i++) b[i]=1;
hoanvi(0);
getch();
}
Mong các bạn
góp ý ở phía dưới. Nhớ bấm G+ ủng hộ
nguyenvandung.net

All comments [ 1 ]
anh có thể giải thích cho em phần hàm hoán vị không ạ? em chưa hiểu lắm
Your comments