简洁易懂C++版
因为会溢出,所以定义一个vector数组,当快溢出时新建一个数,即大于10的10次方,表示乘上10的10次方的数据,其代码如下,非常简洁!!!
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
if (n==1)
{
cout<<1<<endl;
continue;
}
vector<int> a,b,c;
a.push_back(1);
b.push_back(1);
c.push_back(0);
for(int i=1;i<n;++i)
{
int temp=0;
for(int i=0;i<a.size();++i)
{
c[i]=(a[i]+b[i])%1000000000+temp;
temp=(a[i]+b[i])/1000000000;
}
if(temp>0)
c.push_back(temp);
a=b;
b=c;
}
for(int i=c.size()-1;i>=0;--i)
cout<<c[i];
}
}
京公网安备 11010502036488号