斐波拉契数列 看看哪儿错了(pascal)

var i,k:integer;function f(x:integer) :integer; begin if i=1 then f:=1; if i=2 then f:=2; if i>=3 then f:=f(i-1)+f(i-2); end;begin readln(i); k:=f(i); writeln(k);end.呵呵应改为var i,k:integer; function f(x:integer) :integer; begin if i=1 then f:=1; if i=2 then f:=1; if i>=3 then f:=f(i-1)+f(i-2); end; begin readln(i); k:=f(i); writeln(k); end.可是这样也不行
2026年09月25日 05:09
有4个网友回答
网友(1):

改一下function:

function f(x:integer) :integer;
begin
if (x = 1) or (x=2) then f := 1;
if x >= 3 then f := f(x-1) + f(x-2);
end;

然后你再试试
另外,斐波那契数列第2项应该是1吧(如上面所改的)

补充:看到你改的了,可是最关键是把函数中的i改为x,因为它才是函数的参数啊!

网友(2):

x在函数中没用到

网友(3):

没有循环吧,好象只加了一次,就是(i-1)+(i-2);

网友(4):

if i=1 then f:=1;
if i=2 then f:=2;
这两句的后面要加个返回的语句