CNTT4A2 COMMUNITY

Thảo luận học tập


You are not connected. Please login or register

Go downThông điệp [Trang 1 trong tổng số 1 trang]

22/9/2011, 9:05 am
whatsltd4us
whatsltd4us


Ví dụ: với 3 bit, n=3 ta có
000
001
010
011
100
101
110
111

Code:

#include <iostream.h>
#include <conio.h>
#define MAX 8
void main()
{
    int a[MAX],n,i,d;
//===========Nhap
    do
    {
        cout<<"Nhap so bit (gia tri nho hon 8)\n";
        cout<<"n = ";cin>>n;
    }while(n<1||n>MAX);
//===========Xuat
    for( i=0;i<n;i++) //****Xay dung cau hinh dau 00...0
        a[i]=0;
    while(i>=0)
    {
        for(i=0;i<n;i++) //****In ra cau hinh hien co
            cout<<a[i];
        cout<<"\n";
        i=n-1; //****Tim so 0 dau tien trong day
        //Ch0 i=n-1 vi ta xet tu vi tri cuoi cua day
        while(i>=0&&a[i]==1) //Ta di tim so 0 dau tien bat gap nen qua trinh lap lai khi a[i]=1
        // va dieu kien i>=0 de khi khong tim thay so 0 nao (tuc dat cau hinh cuoi 11...1) se dung va luc do i=-1
            i--;
        if(i>=0) // Chua gap cau hinh cuoi 11...1
        {
            a[i]=1;
            for( d=1;d<=n-i;d++)
                a[i+d]=0;
        }
    }
    getch();
}

Tham khảo thêm thuật toán đệ quy :

Code:
#include <iostream.h>
#include <conio.h>
int x[30];
void Try(int i, int n)
{
for (int k=0; k<=1; k++)
{
x[i] = k;
if (i==n-1)
{
for (int j=0;j<=i;j++) cout<<x[j];
cout<<"\n";
}
else Try(i+1, n);
}
}

void LKNhiPhan(int n)
{
Try(0, n);
}
void main()
{
int n;
cout<<"Nhap n = ";cin>>n;
LKNhiPhan(n);
}



http://vdvinh-nd.blogspot.com

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà whatsltd4us
22/9/2011, 9:51 am
kienhl
kienhl

anh phải lý giải phương pháp sinh cho mọi người hiểu, chứ đọc mỗi code ko hiểu đâu,
http://tin4a2uneti.tk

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà kienhl

Về Đầu TrangThông điệp [Trang 1 trong tổng số 1 trang]

« Xem bài trước | Xem bài kế tiếp »

Bài viết mới cùng chuyên mục

      Quyền hạn của bạn:

      Bạn không có quyền trả lời bài viết