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 版本,您需要找到类似的 3rd 方实现

于 2012-12-16T19:42:22.420 回答