2002 - BIỂU DIỄN TỔNG CÁC SỐ FIBONACI(DÀNH CHO HỌC SINH THCS)CÁ...

Bài 94/2002 - Biểu diễn tổng các số Fibonaci

(Dành cho học sinh THCS)

Cách giải: Ta sẽ tìm số Fibonacci gần với số N nhất. Đây sẽ chính là số hạng đầu tiên nằm trong dãy kết

quả. Sau đó, lấy hiệu của số N và số Fibonacci gần với số N nhất, tiếp tục tìm số Fib gần với hiệu trên và cứ

thế cho đến khi hiệu đó là một số Fib. Kết quả các số Fibonacci sẽ được liệt kê theo thứ tự từ lớn đến nhỏ.

Chương trình:

Program BdFib;{Bai 94/2002: Bieu dien tong cac so Fibonacci}

uses crt;

var n:longint;

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;

procedure xuly;

var i,j:longint;

for i:=1 to 1000 do f[i]:=-1;

while n>0 do

begin

i:=1;

while fib(i)<=n do

inc(i);

j:=fib(i-1);

write(j,' + ');

n:=n-j;

end;

gotoxy(wherex-2,wherey);

writeln(' ');

procedure test;

clrscr;

write('Nhap n='); readln(n);

write('n=');

xuly;

BEGIN

test;

readln;

END.