2012-12-16 105 views
4

我想以一種非常簡單的方式計算C#中的斐波那契數列,但是當涉及到更高的數字時,它會出錯,並通過發出錯誤的答案而停止工作。計算斐波那契在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中。

回答

11

ulong對於斐波那契太小。你需要使用更大的東西。 .NET 4增加了BigInteger,這應該允許任意數量的大小。

對於較低的.NET版本,您需要找到similliar第三方實現