フィボナッチを以下のように書き換えたのですが、確かに走るし100項でもすぐ出るんですが、マイナスの値がでてくるんです。なぜでしょうか? program kadai14_2(input,output); var m,k : integer; function fibonacci(n : integer):integer; function fib(i,old,new : integer):integer; begin if i=n then fib:=new else fib:=fib(i+1,new,old+new) end; { fib }
begin if n<=1 then fibonacci:=n else fibonacci:=fib(1,0,1) end; { fibonacci }
begin writeln('数列の長さを入力してください'); readln(m); for k:=1 to m do begin write(fibonacci(k):1); write(',') end; writeln; end.