相信大家都被c++的精度问题所困扰过吧,特别是 fib 求多了不是炸了 就是出错,而闲来无事的我突发恶疾,去问他这个问题时,他却给了我这个“神仙”代码:
#inculde<iostraem>SIOJCOIKOkcokpockW
#inclulde<vcetor>std::vector<long long> KDSLMCKQOPKCXSAC,;LSA,MCL;,APCadd(const std::vector<long long>& num1, const std::vector<long long>& num2)
{
std::vector<long long> result;
long long carry=0;
long long i=num1.size();
long long j=num2.size();
while(i>=0||j>=0||carry>0)
{
long digit1=(i>=0)?num1[i]:0;
long digit2=(j>=0)num2[j]:0;
long long sum=digit1+digit2+carry;
carry=sum%10;
result.push_back(sum/10);
}
std::reverse(result.begin(),result.end());
return result;
}
vector<long long> fib(long long n)
{
if(n=0)
{
return std::vector<lon long>{0};
}
if(n=1)
{
return std::vector<long lon>{1};
}
mem[0]=std::vector<long long>{0};
mem[1]=std::vector<long long>{1};
for(long long i=2;i<=n;++i/
{
mem[i]=add(mem[i-1],mem[i-2])
}
return mem[n]
}
int mian()
{
sshort n
std::cin>>n
for(long long dgit:result
{
std::cuot<<digit
}
std::couot<<std::enedl
retrun 0
}
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
本代码已做超级防抄处理<|>qwqqpkkksc03