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

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. Nhbấm G+ ủng hộ nguyenvandung.net
Chia sẻ bài viết ^^
Other post

All comments [ 1 ]


1
Unknown April 8, 2022 at 5:48 PM

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