5

私は C# でフィボナッチ数列を非常に簡単な方法で計算しようとしていますが、数値が大きくなるとバグが発生し、間違った答えを出すことで機能しなくなります。

ulong num = 1;
ulong lnum = 0;
uint x = 1;

private void Form1_Load(object sender, EventArgs e)
{
    listBox1.Items.Add("(0) " + 1);
}

private void timer1_Tick(object sender, EventArgs e)
{
    if (x <= 1000)
    {
        ulong newnum = lnum + num;
        listBox1.Items.Add("(" + x + ") " + newnum);
        listBox1.SetSelected((int)x, true);
        lnum = num;
        num = newnum;
        x++;
     }
}

一度に1つずつリストボックスに追加することで、数字を合計するのを見ることができる方法で作成しています。

4

1 に答える 1

11

ulongフィボナッチには小さすぎます。より大きなものを使用する必要があります。.NET 4 ではBigIntegerが追加されました。これにより、任意の数値サイズが可能になります。

.NET の下位バージョンについては、同様のサード パーティの実装を見つける必要があります。

于 2012-12-16T19:42:22.420 に答える