【发布时间】:2011-08-21 08:21:09
【问题描述】:
我编写了以下代码来查找第 1500000 个斐波那契数(请忽略可怕的缩进,我在大约 2 分钟内编写了此代码)。我需要它作为字符串。假设这应该有效:
#include <cstdlib>
#include <iostream>
#include <sstream>
int i;
int b=1;
int c=2;
using namespace std;
int main(int argc, char *argv[])
{
int fib=1500000;
for (i=1;i<fib-3;i++){
c=b+c;
b=c-b;
}
stringstream ss;
ss << c;
string d=ss.str();
cout << d << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
它经过1500000-3次(每次经过3个数字) 我知道问题是这个数字太大而不能包含在一个 int 中。有什么方法可以让我存储它而不包含它作为一个 int 或文件(因为那会非常低效)?如果是这样,我该怎么做?
【问题讨论】:
-
您需要所有 250,000 多位的答案都是准确的吗?
-
是的。我实际上需要每 20,000 个数字。