Bài 2:
uses crt;
var a:array[1..1000]of longint;
k,i,n,m,h:longint;
function fbnx(k:longint):boolean;
var i:longint;
f:array[1..100]of longint;
begin
f[1]:=1;
f[2]:=1;
i:=3;
repeat
f[i]:=f[i-1]+f[i-2];
inc(i);
until f[i-1]>=k;
fbnx:=(f[i-1]=k);
end;
BEGIN
clrscr;
write('Nhap n=');readln(n);
if (n=0) or(n=1) then begin write('KHONG THE PHAN TICH.');readln;exit;end;
if (n=2) then begin write('KHONG THE PHAN TICH.');readln;exit;end;
m:=n;
k:=0;
if not fbnx(n) then
begin
repeat
for i:=n downto 1 do
if fbnx(i) then begin inc(k);a[k]:=i;n:=n-i;break;end;
until (n=0)or (n=1);
write('',m,'=');
if n=0 then
begin
for i:=1 to k-1 do write('',a[i],'+');
write(a[k]);
if n=1 then
for i:=1 to k-1 do write('',a[i],'+');
write('',a[k],'+1');
end
else
write('',n,'=');
h:=0;
for i:=n-1 downto 1 do
if fbnx(i) then begin h:=i;write('',i,'+');break;end;
write(n-h);
readln
end.
Bạn đang xem bài 2: - Đề khảo sát HSG huyện Vĩnh Tường