Viết chương trình tính số fibonacci thứ n pascal
Hãy luôn nhớ cảm ơn và vote 5* TRẢ LỜI
uses crt; Mong ban ung ho minh nhe!!! Hãy giúp mọi người biết câu trả lời này thế nào? star star star star star star star star star star star star star star star star star star star star star star star star star star star star star star 5 star star star star star 1 vote
function f(n:integer):integer; begin if f <= 2 then f := 1 else f := f(n-1) + f(n-2); end; begin write(f(5)); {phần này bạn tự nhập số vào ví dụ như mình nhập số 5 là tìm fibonaci của 5} end. Hãy giúp mọi người biết câu trả lời này thế nào? star star star star star star star star star star star star star star star star star star star star star star star star star star star star star star 5 star star star star star 1 vote Viết chương trình tính số Fibonacci thứ n biết: - F=F2 = 1 - F = Fn-1 + F-2 Bài 1(Cách 1): Viết chương trình nhập từ bàn phím một số n. Xuất dãy số Fibonacci trong khoảng n. Biết dãy số Fibo được xác dịnh như sau : U0 = U1 = 1 Un+2 = Un+1 + Un (n > 0) Ví dụ: n = 8 -> 1 1 2 3 5 8 13 21. Program Day_Fibo; uses crt; var i,n,f1,f2,f3:longint; procedure fibo(k:longint); begin f1:=1; f2:=1; for i:=1 to k do begin f3:=f1+f2; write(f1:3,' '); f1:=f2; f2:=f3; end; end; begin clrscr; write('Nhap n: ');readln(n); fibo(n); readln; end. Bài 1 (Cách 2): Nhập vào một số N. Xuất ra tất cả các số fibonanci trong khoảng N. VD: N = 5 -> 1 1 2 3 5 Program Bai9; uses crt; var a,b,c,d,i,n:integer; begin clrscr; write('Nhap vao n = ');readln(n); a:=1; b:=1; c:=a+b; write(n,' so Fibonaci dau tien la: '); write(1:4,1:4); for i:=3 to n do begin write(c:4); a:=b; b:=c; c:=a+b; end; writeln; writeln('Da xu ly xong'); readln; end. writeln('da xu ly xong'); readln; end. Bài 2: Nhập vào một số N. Xuất ra số Fibonanci thứ N VD: N = 10 -> Số Fibonanci thứ 10 là: 55 program xuat_so_fibonanci; uses crt; var i,n,s,a,b:integer; begin clrscr; write('nhap vao n:=');readln(n); b:=1; i:=2; a:=1; while (i
begin i:=i+1; if i mod 2=1 then a:=a+b else b:=b+a; end; if i mod 2=1 then write('So Fibonanci thu ',n,' la: ',a) else writeln('So Fibonanci thu ',n,' la: ',b); readln; end. Bài 3: Nhập vào một số phân tích thành tổng các số là số fibonanci. VD: N = 10 ->
10 = 8 +2 program tfbnc; var i,j,n:integer; f:array[1..1000] of longint; function fib(k:integer):longint; begin f[1]:=1; f[2]:=1; f[3]:=2; if f[k]=-1 then f[k]:=fib(k-1)+fib(k-2); fib:=f[k]; end; begin write('nhap n: ');readln(n); write(n,'='); for i:=1 to 1000
do f[i]:=-1; while n>0 do begin i:=1; while fib(i)<=n do i:=i+1; j:=fib(i-1); if i<=n then write(j,' + ') else write (j); n:=n-j; end; writeln(); writeln('da xu ly xong'); readln; end. Bài 4: Nhập vào một số N. kiểm tra xem có mấy cách phân tích thành tổng các số fibonanci. VD: N = 10 -> Có 3 cách phân tích. program bai10; var f:array[1..20] of integer; dd:array[1..20] of boolean; n,i,luu:integer; procedure tim(i:integer); var j:integer; begin if n=0 then begin writeln(i-1); readln; halt; end else begin for j:=1 to luu do if (not dd[j]) and (n>=f[j]) then begin dd[j]:=true; n:=n-f[j]; tim(i+1); dd[j]:=false; n:=n+f[j]; end; end; end; {Chuong trinh chinh} begin write('nhap vao n: ');readln(n); f[1]:=1; f[2]:=1; i:=2; while (f[i] begin i:=i+1; f[i]:=f[i-1]+f[i-2]; end; luu:=i; tim(0); end. |