Nguồn đề bài http://vn.spoj.com/problems/LATGACH/
Nội dung bài viết
1. Đề bài LATGACH spoj
Cho một hình chữ nhật kích thước 2xN (1<=N<=100). Hãy đếm số cách lát các viên gạch nhỏ kích thước 1×2 và 2×1 vào hình trên sao cho không có phần nào của các viên gạch nhỏ thừa ra ngoài, cũng không có vùng diện tích nào của hình chữ nhật không được lát.
Input
Gồm nhiều test, dòng đầu ghi số lượng test T ( T<=100 ).
T dòng sau mỗi dòng ghi một số N.
Output
Ghi ra T dòng là số cách lát tương ứng.
Example
Input:
3
1
2
3
Output:
1
2
3
2. Hướng dẫn LATGACH spoj
thực chất đây là bây toán Fibonacci. F[i]:=F[i-1]+F[i-2]. việc còn lại là xử lí số lớn.
3. Code tham khảo LATGACH spoj
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | const fi=''; var f:text; T:byte; A:array[0..100] of ansistring; function cong(a,b:ansistring):ansistring; var c:ansistring; i,du,carry:word; begin while length(a)<length(b) do a:='0'+a; while length(b)<length(a) do b:='0'+b; du:=0; c:=''; for i:=length(a) downto 1 do begin carry:=ord(a[i])+ord(b[i])-48*2+du; if carry>9 then begin du:=1; carry:=carry-10; end else du:=0; c:=chr(carry+48) + c; end; if du=1 then c:='1'+c; exit(c); end; procedure fibo; var i:byte; begin a[0]:='1'; a[1]:='1'; for i:=2 to 100 do a[i]:=cong(a[i-1],a[i-2]); end; begin assign(f,fi); reset(f); readln(f,t); fibo; while not eof(f) do begin readln(f,t); writeln(a[t]); end; close(f); end. |
Bài viết liên quan
- MTTRAVEL spoj THPTCBT – Du lịch vòng quanh thế giới
- MTHCN spoj – Hình chữ nhật kì lạ
- PTIT016E spoj PTIT – ACM PTIT 2016 E – Kỳ thi ACM/ICPC
- MPILOT spoj – Pilots
- STMERGE spoj – VOI 2013 – Trộn xâu
- NKCABLE Spoj – Nối mạng
- QBSELECT Spoj – VOI06 Chọn ô
- QBMAX spoj – Đường đi có tổng lớn nhất
- LIQ spoj – Dãy con tăng dài nhất
- AMSSEQ spoj – Dãy số
Viết chương trình nhập vào 1 số nguyên lớn N. Hãy tách số nguyên lớn này thành nhiều số con theo thứ tự tăng dần.
vd: 15478245
tách thành 1 5 47 8245
vd: 10487529
tách thành 10 48 7592
vd: 17024589
tách thành 1 70 24589
Chào bạn,
Bạn post đề bài ở đây là sao ạ?
Mình nhờ bạn trợ giúp nhung không biết phải đăng ở đâu. Bạn vui lòng giúp mình nhé
Chào bạn,
Mình không giúp được nhé.
Hãy xem lại cách nhờ vả của bạn.
Thân mến.