Pascal
Modified: Wednesday, 22-12-2021 07:00 AM
Tìm số Fibonaci thứ N -> Fi(n)
Cách thông thường
Program Day_so_Fibonaci;
uses crt;
Var
n:integer;
Function Fi(x:integer):int64;
var j:integer;
begin
if x<=2 then
exit(1)
else
fi:=fi(x-2)+fi(x-1);
end;
Begin
clrscr;
Writeln('IN DAY SO FIBONACI');
Writeln('------------------');
Write('-Nhap so N= ');
Readln(n);
Writeln('+So hang thu ',n,' cua day Fibonaci = ',Fi(n));
Writeln;
Writeln(' Bam phim de ket thuc');
Readln
End.
Sử dụng BigNum
type bignum=string;
function add(a,b:bignum):bignum;
var sum, carry, i: integer;
c:bignum;
begin
carry := 0;
c := '';
while length(a) 0 then c:='1'+c;
add := c;
end;
function fibo(n:longint):bignum;
var i:longint;
fi,fi_1,fi_2 :bignum;
begin
if n<1 then
exit(char(n+48));
fi_2 := '0';
fi_1 := '1';
for i:=2 to n do
begin
fi := add(fi_1,fi_2);
fi_2 := fi_1;
fi_1 := fi;
end;
exit(fi);
end;
// main program
var n: longint;
begin
write('Nhap n: '); readln(n);
writeln(fibo(n));
readln;
end.
Dãy Fibo được tạo từ 2 ký tự a và b
a b ab bab abbab bababbab abbabbababbab
Program Day_so_Fibonaci_a_b;
Var
i,n:integer;
Function Fi(x:integer):string;
var j:integer;
f,f1,f2:string;
begin
if x=1 then
fi:='a'
else if x=2 then
fi:='b'
else
fi:=fi(x-2)+fi(x-1);
end;
Begin
Writeln('IN DAY SO FIBONACI DUNG KY TU a b');
Writeln('------------------');
Write('-Nhap so N= ');
Readln(n);
Writeln('+So hang thu ',n,' cua day Fibonaci_ab = ',Fi(n));
Writeln;
for i:=1 to n do writeln(fi(i),#32);
Writeln(' Bam phim de ket thuc');
Readln
End.