BCSINH PTIT spoj – Sinh các dãy nhị phân độ dài n (Cơ bản)

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);
}

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *