#include
#include
#include
#include
#include
using namespace std;
//大数相加
string add(string& s1,string& s2)
{
string str1=s1;
string str2=s2;
//反转
reverse(str1.begin(),str1.end());
reverse(str2.begin(),str2.end());
int len=str1.size()>str2.size()?str1.size():str2.size();
//对其
while(str1.size()<len)
{
str1.push_back(‘0’);
}
while(str2.size()<len)
{
str2.push_back(‘0’);
}
//转真
for(int i=0;i<str1.size();i++)
{
str1[i]-=‘0’;
}
for(int i=0;i<str2.size();i++)
{
str2[i]-=‘0’;
}
//相加
int get=0;
int tmp=0;
string res(len,0);
for(int i=0;i<len;i++)
{
tmp=str1[i]+str2[i]+get;
res[i]=tmp%10;
get=tmp/10;
}
if(get)
{
res.push_back(get);
}
//反转
reverse(res.begin(),res.end());
//还原
for(int i=0;i<res.size();i++)
{
res[i]+=‘0’;
}
return res;
}
string Func(int begin,int end)
{
vectordp(end+1,"");
dp[0]=“0”;
dp[1]=“1”;
for(int i=2;i<=end;i++)
{
dp[i]=add(dp[i-1],dp[i-2]);
}
string res;
for(int i=begin;i<=end;i++)
{
res=add(dp[i],res);
}
return res;
}
int main()
{
int num1,num2;
while(cin>>num1>>num2)
{
cout<<Func(num1,num2)<<endl;
}
return 0;
}
牛客客似云来(大数算法)
最新推荐文章于 2023-04-27 22:54:53 发布