フィボナッチ数列の計算

注意事項

このサイト内で公開していることがらについて
使用や利用によるいかなる損失に対しても責任を負いませんのでご了承ください。
著作物に関する著作権について
原則としてすべて運営者(EponaLab)にあります。

ソースコード1(再帰関数を用いる方法)


program Fib1(input, output);

{Fibonacci数を計算する}
function Fib(n : integer) : integer;
begin
    {Fib(0) = 0}
    if n <= 0 then
        Fib := 0

    {Fib(1) = 1}
    else if n = 1 then
        Fib := 1

    {Fib(n) = Fib(n-2) + Fib(n-1)}
    else
        Fib := Fib(n-2) + Fib(n-1)
end;

procedure main;
var i : integer;
begin
    for i := 1 to 10 do
        writeln('Fib(', i:2, ') = ', Fib(i):5)
end;

begin
    main
end.
                

ソースコード2(変数のみで行う方法)


program Fib2(input, output);

{Fibonacci数を計算する}
procedure Fib(n : integer);
var x, y, tmp, i : integer;
begin
    {Initialize}
    x := 0;
    y := 1;

    if n <= 0 then
        writeln('Fib(', n:2, ') = ', x:5)
    else if n = 1 then
        writeln('Fib(', n:2, ') = ', y:5)
    else
    begin
        for i := 1 to n do
        begin
            {Fibonacci数の計算}
            tmp := x + y;
            x := y;
            y := tmp;

            {出力}
            writeln('Fib(', i:2, ') = ', x:5)
        end
    end
end;

begin
    Fib(10)
end.