#include
#include
#include "MTime.h"
using namespace std;
long long _fibonacci(int i)
{
if (i == 0)
return 0;
if (i == 1)
return 1;
return _fibonacci(i-2) + _fibonacci(i-1);
}
int main()
{
ofstream out("fibonacci.txt");
int i = 3;
long long maxNum = 0;
long long num = 1;
int useTime;
while (maxNum < num)
{
MTime start;
maxNum = num;
num = _fibonacci(i++);
MTime end;
useTime = end.delta(&start);
}
out << "Fibonacci数列中" << endl
<< "能用long long数据类型存储的"
<< "最大数是第 " << i-1 << " 个数" << endl
<< "这个数是 " << maxNum << endl
<< "计算出这个数用时 " << useTime << " 秒" <<endl;
cout << "Fibonacci数列中" << endl
<< "能用long long数据类型存储的"
<< "最大数是第 " << i-1 << " 个数" << endl
<< "这个数是 " << maxNum << endl
<< "计算出这个数用时 " << useTime << " 秒" <<endl;
system("pause");
return 0;
}
我算是一个C++初学者吧,上面程序是我自己写的。我运行它,一个晚上过去了还是没结果。貌似无限循环了。下班回来用F10测试,发现在“i==40”时还能正常进行,当运行到“i==41”时就一直等待了。我一再检查程序没发现问题出在哪儿。求大神解惑~~~
另:我在将long long 类型用unsigned char类型替代时程序能正常运行且很快得出结果!