Tboy Cá voi
Tổng số bài gửi : 178 Cảm ơn : 413 Danh vọng : 4 Join date : 03/01/2011 Age : 32 Đến từ : TPHCM
| Tiê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
| | | | | |
|