求PASCAL列出斐波拉契数列(21个)的解法

来源:百度知道 编辑:UC知道 时间:2024/05/31 06:47:39
求PASCAL列出斐波拉契数列(21个)的解法,用for循环语句做。

program STU_Fibonacci(input,output);
uses crt;
var i:integer;a,b:longint;
begin
a:=1;
b:=1;
writeln(a);
writeln(b);
for i:=1 to 19 do
begin
a:=a+b;
b:=a+b;
writeln(a);
writeln(b);
end;

Readkey;
end.

要21个啊,难。

楼主,斐波拉契数列是有通项公式的,有兴趣的可以去网上找找。
这里给出递推的方式写的:

var a:Array[1..1000]of longint;
i,j,k:longint;

begin
a[1]:=1;
a[2]:=1;
readln(k); //K是你要输出数列前K项
write(1,' ',1);
for i:=3 to k do
begin
a[i]:=a[i-1]+a[i-2];
write(' ',a[i]);
end;
end.

已经编译过了,直接用就可以

1/sqrt(5)*(((1+sqrt(5))/2)^n+1-((1-sqrt(5))/2)^n+1)=an
注意,要截尾的

program fb;
var i,a0,a1,a2:integer;
begin
a0:=0;
a1:=1;
for i:=2 to 21 do
begin a2:=a0 a1;
a0:=a1;
a1:=a2;
write(a1:6);
end;