Nguồn đề bài http://www.spoj.com/PTIT/problems/BCSINH/
Nội dung bài viết
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 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++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | //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); } |
Bài viết liên quan
- P151SUMB spoj PTIT – ROUND 1B – Đong gạo
- BCACM11G spoj PTIT – Dãy con tăng dần tự nhiên bậc K
- PTIT122F spoj PTIT – Số siêu tự nhiên
- P144PROC spoj PTIT – ROUND 4C – Lũy thừa
- P132SUMJ spoj PTIT – SUM2 J – Hoán vị chữ số
- BCSRETAN spoj PTIT- Số may mắn thứ K
- BCCOW spoj PTIT – Đi xem phim
- P134SUMG PTIT spoj – SUM4 G – Gia vị
- BCPERMU PTIT spoj – Liệt kê hoán vị (Cơ bản)
- PTIT138E spoj PTIT – Bài E – Làm tròn số