用Pascal可不可以以过程+递归来求出斐波那契数列的第n项,如能该怎样写?

来源:百度知道 编辑:UC知道 时间:2024/07/15 12:06:07
数列(0,1,1,2,3,5,8,13........) 以过程+递归来求

我是这样写的
var a:longint;
procedure fib(x:integer);
begin
if x=0 then a:=0
else if x=1 then a:=0
else if x=2 then a:=1
else
begin
该怎样写下去
请大家帮帮我,谢谢,小弟感激不尽
(*^__^*)
如这样写肯定是函数的写法:
fib(x-1)+fib(x-2)
不用再发了

不行吧

procedure fib(x:integer);
begin
if x=0 then a:=0
else if x=1 then a:=0
else if x=2 then a:=1
else a := fib(x-1)+fib(x-2);
end;

var
a:array[1..1000]of longint;
n,i:integer;
begin
write('N=');
readln(n);
a[1]:=1;
a[2]:=1;
writeln(a[2]:10);
for i:=3 to n do begin
a[i]:=a[i-2]+a[i-1];
writeln(a[i]:10);end;
end

可以,把递归终止条件写清楚然后递归就行,这是最简单的递归!