我在斐波那契序列發現更大的那個我得到負數after a certain point:作爲數字輸出怪異得到Fibonacci序列中
267914296 433494437 701408733 1134903170
1836311903 -1323752223 512559680 -811192543 -298632863
這是否有「INT」的限制範圍呢?或者我的代碼有什麼問題?
下面是代碼:
using std::cout;
int main()
{
int n = 50, f1 = 0, f2 = 1, fn = 0, i = 0;
cout << "0 ";
for (i = 0; i < n; i++)
{
fn = f1 + f2;
f2 = f1;
f1 = fn;
cout << fn << " ";
}
'這是否與「int」的有限範圍有關?是的,很有可能。如果它發生在2G左右,是的,這就是它。一個簡單的測試就是使用'long long int'並且看看它是如何運作的。 –
答案在什麼時候變爲負值?但我會冒險「是的,這就是爲什麼」。 –
你在哪一點開始變得奇怪的數字? –