Description:
有一些整数N(N≤46),输出以这些整数为序数的第n项fibonacci数。文件中的数据可能上万,但要求运行时间不超过1秒钟。Sample Input:
5 6 7 8 9 40
Sample Output:
5 8 13 21 34 102334155
source:
#include <iostream>
#include <vector>
using namespace std;
void GetResult(vector<int> &nums,int* res)
{
int index,sum1,sum2,temp;
vector<int>::iterator it;
int res2[47];
for(index=1,sum1=0,sum2=1;index<=46;temp=sum1,sum1=sum2,sum2+=temp,++index)
res2[index]=sum2;
for(it=nums.begin(),index=0; it!= nums.end(); ++it,++index)
res[index]=res2[*it];
}
int main(int argc, char* argv[])
{
vector<int> input;
int temp,len,*result;
while(cin>>temp)
input.push_back(temp);
result=new int[len=input.size()];
GetResult(input,result);
for(temp=0;temp<len;++temp)
cout<<result[temp]<<endl;
delete result;
return 0;
}