Nguồn đề bài http://www.spoj.com/PTIT/problems/BCSINH/
1. Đề bài BCSINH PTIT spoj
Sinh các dãy nhị phân có độ dài n.
Input
Số nguyên duy nhất n (1<=n<=9)
Output
Mỗi dòng một dãy nhị phân. Các dãy nhị phân phải được liệt kê theo thứ tự từ điển.
Example
Input:
2
Output:
00
01
10
11
###############
Đây là 1 bài đệ quy quay lui cơ bản, mình sẽ không giải thích nhiều 😀
2. code tham khảo BCSINH PTIT spoj pascal và c++
a. Code sinh nhị phân Pascal
const nmax=9; type data = byte; var n:data; res:array[1..nmax]of data; procedure xuat; var i:data; begin for i:=1 to n do write(res[i]); writeln; end; procedure try(i:data); var j:data; begin if i>n then xuat else for j:=0 to 1 do begin res[i]:=j; try(i+1); end; end; begin readln(n); try(1); end.
b. Code sinh nhị phân c++
//liệt kê dãy nhị phân #include <iostream> using namespace std; int a[10],n; void init () { cin >> n; //nhap n; } void output() { for(int i=0;i<n;i++) cout << a[i]; cout << endl; } void tim(int i) { for(int j=0;j<=1;j++) { a[i]=j; if(i==n-1) //nếu tìm đến x i cuối cùng thì xuất ra ket quả output(); else tim(i+1); // chưa tìm đến i cuối thì tăng i lên } } int main() { init(); //khởi tạo tim(0); }