Trang ChínhTrang Chính  CalendarCalendar  Trợ giúpTrợ giúp  Tìm kiếmTìm kiếm  Thành viênThành viên  NhómNhóm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

Hãy sử dụng FireFox để web hiển thị tốt hơn!


Share | 
 

 Liệt kê dãy nhị phân có độ dài n - (Phương pháp sinh)

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
Tboy
Cá voi
Cá voi
avatar


Nam Tổng số bài gửi : 178
Cảm ơn : 413
Danh vọng : 4
Join date : 03/01/2011
Age : 25
Đến từ : TPHCM

Bài gửiTiêu đề: Liệt kê dãy nhị phân có độ dài n - (Phương pháp sinh)   Fri May 13, 2011 2:38 pm

Fri May 13, 2011 2:38 pm » Liệt kê dãy nhị phân có độ dài n - (Phương pháp sinh)
Ví dụ: với 3 bit, n=3 ta có
000
001
010
011
100
101
110
111

Code:
#include <stdio.h>
#include <conio.h>
#define MAX 8
void main()
{
    int a[MAX],n,i,d;
//===========Nhap
    do
    {
        printf("Nhap so bit ( 0<n<%d): ",MAX);
        scanf("%d",&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
            printf("%d",a[i]);
        printf("\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();
}


Tboy



Về Đầu Trang Go down
Xem lý lịch thành viên http://taplaptrinh.forumvi.com
 

Liệt kê dãy nhị phân có độ dài n - (Phương pháp sinh)

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
 :: Cơ sở lập trình 2 :: Bài tập khác-