Wil*_*ire 0 c++ integer cout fibonacci
我用c ++编写了一个程序来输出你告诉它的fibonacci序列中的数字.它一直工作到大约第47个数字,然后它打印出完全不同的数字,甚至是负数,并且它们都没有超过9或10个单独的整数.这是代码
#include <iostream>
int a = 0;
int b = 1;
int c;
int var = 0;
int num;
void fibonacci()
{
using namespace std;
c = a;
a = a + b;
b = c;
var += 1;
}
void loop()
{
using namespace std;
for (int iii=0; iii<num; iii++)
fibonacci();
}
int main()
{
using namespace std;
cout << "What fibonacci number do you want to know? ";
cin >> num;
cin.get();
loop();
cout << "" << endl;
cout << c << endl;
cin.get();
a = 0;
b = 1;
var = 0;
return main();
}
Run Code Online (Sandbox Code Playgroud)
是否有一些限制c ++可以一次打印多少个字符?
Fib(47) = 2971215073
大于2147483647
.
std::numeric_limits<int>::max() == 2^31 - 1 == 2147483647
在你的情况下.
因此,结果整数溢出num == 47
.
@jogojapan补充道:
sizeof(int)是4个字节(在许多平台上,即),是32位.2 ^ 31-1 [numeric_limits :: max()]是可以使用int(在这些平台上)呈现的最大数字.