フィボナッチ数/C Sharp

提供: MonoBook
ナビゲーションに移動 検索に移動

C#によるフィボナッチ数の記述例。

記述例 1[編集 | ソースを編集]

古風な記述例。 一応、末尾再帰にはなっている。

using System;

class AppMain 
{
    static int fib(int x)
    {
        if (x <= 0) 
        {
            return 0;
        }
        else if (x <= 2) 
        {
            return 1;
        }
        else 
        {
            return fib(x - 1) + fib(x - 2);
        }
    }

    public static void Main(string[] args) 
    {
        for (int x = 0; x < 16; x++) 
        {
            Console.WriteLine("fib({0}) = {1}", x, fib(x) ));
        }
    }
}

記述例 2[編集 | ソースを編集]

ラムダ式を使った記述方法。

using System;

class AppMain 
{
    static Func<int, int> fib = x => 
        (x <= 2) ? 1 : fib(x - 1) + fib(x - 2);

    public static void Main(string[] args) 
    {
        for (int x = 0; x < 16; x++) 
        {
            Console.WriteLine("fib({0}) = {1}", x, fib(x) );
        }
    }
}

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]


外部リンク[編集 | ソースを編集]