Posted by : 86Gems 16 March 2014

Đề bài: Xâu thuận nghịch độc là xâu bít nhị phân có độ dài n mà khi đảo xâu ta vẫn nhận
được chính xâu đó. Hãy liệt kê tất cả các xâu thuận nghịch độc có độ dài n và ghi lại
những xâu đó vào File thuang.out theo từng dòng, dòng đầu tiên ghi lại giá trị của n,
các dòng tiếp theo là những xâu thuận nghịch độc có độ dài n. Ví dụ: với n=4, ta có
được những xâu thuận nghịch độc có dạng sau:

4
0   0   0   0
0   1   1   0
1   0   0   1
1   1   1   1
Bài làm:
//---------------------------------------------------------------------------------
#include <iostream>
#include <fstream>
using namespace std;

int x[20], n;
ofstream outFile("Result.out.txt");

void xuatkq(int x[])
{
for(int i=0; i<n; i++)
{
    cout<<" "<<x[i];
   if(outFile.is_open())
       outFile<<" "<<x[i];
    else
       cout<<"Error";
}
outFile<<endl;
cout<<endl;
}

void thu(int k)
{
    if (k==(n-1)/2+1)
    {
        if(n%2==0)
         {
            for(int j=0;j<n/2;j++)
                x[n-j-1]=x[j];
         }
         else
         {
                for(int j=0;j/2-1;j++)
                    x[n-j-1]=x[j];
         }
        xuatkq(x);
    }
    else
        for (int i=0; i<=1; i++)
        {
            x[k]= i;
            thu(k+1);
        }
 }

 int main()
 {

     cout<<"Nhap vao mot so n= ";
     cin>>n;
     outFile<<"Cac xau thuan nghich doc co do dai "<<n<<" la:"<<endl<<endl;
     thu(0);
     outFile.close();
     return 0;
 }
//---------------------------------------------------------------------------------------

fb.com/snowblack93





Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © Kiến thức tổng quan - Vòng Đá 5A - Powered by Blogger - Designed by SnowBlack -