#include <iostream>
#include <string>
using namespace std;
string Add(string fNum,string sNum)
{
if( fNum.length() < sNum.length() ) fNum.swap(sNum);
string A = "0";
A += fNum;
for ( int i=1;i<=fNum.length();i++)
if(i<=sNum.length())
A[A.length()-i]+=sNum[sNum.length()-i]-'0';
for( int i=1;i<A.length();i++)
{
if(A[A.length()-i]>'9')
{ A[A.length()-i]-=10;A[A.length()-i-1]+=1; }
}
while(A[0]=='0') A.erase(0,1);
return A;
}
string F[1001] = { "0", "1", "1" };
void setNum ()
{
for ( int i = 3; i != 1001; ++ i )
{
F[i] = Add ( F[i-1] , F[i-2] ) ;
}
}
int main ()
{
int T;
setNum ();
while ( cin >> T )
{
while ( T -- )
{
int N;
cin >> N;
cout << F[N] << endl;
}
}
return 0;
}HDU 1715 使用大数模板
最新推荐文章于 2019-08-14 09:12:53 发布
本文详细介绍了如何使用C++编程语言编写一个函数来生成斐波那契数列,并通过输入指定位置的数值来获取对应数列中的元素。程序首先初始化数列前两个值,然后通过循环计算后续值直至指定位置。最后,程序通过读取用户输入的数值来确定输出哪个位置的斐波那契数。本文提供了完整的代码实现和运行示例。


1042

被折叠的 条评论
为什么被折叠?



