Thursday, December 18, 2014

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.

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

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(inti)
{
     for(intj=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(inti=0;i<6;i++) b[i]=1;
     hoanvi(0);
     getch();
}


Mong các bạn góp ý ở phía dưới. Nhbấm G+ ủng hộ nguyenvandung.net

No comments:

Post a Comment