题解 UVA10334 【Ray Through Glasses】
拿了最优解,再来蹭题解
这道题目其实就是让你去求斐波那契数列的第N项
其中:
Fibonacci[0]=1;
Fibonacci[1]=2;
......
Fibonacci[i]=Fibonacci[i-1]+Fibonacci[i-2];
But!
记得开高精!
让我们来回顾下高精求和
因为不会有前导零,就不用去了
我写的比较繁杂
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
inline string Get_Sum(string A,string B) { register int i; register int Carry=0; register int LenA,LenB; LenA=A.size(),LenB=B.size(); register string Return=""; //下面开始补齐数位 if(LenA<LenB) { Return=A; for(i=1;i<=LenB-LenA;i++) { Return='0'+Return; } A=Return; LenA=LenB; } else { if(LenB<LenA) { Return=B; for(i=1;i<=LenA-LenB;i++) { Return='0'+Return; } B=Return; LenB=LenA; } } //补完数位 Return=""; //下面是标准高精 for(i=LenA-1;i>=0;i--) { register int Now; Now=Carry; Now+=A[i]-'0'+B[i]-'0'; Carry=0; if(Now>=10) { Carry=1; Now-=10; } Return=(char)(Now+'0')+Return; } //求和完毕 if(Carry!=0) { return (char)(Carry+'0')+Return; } //如果最后还有进位,千万不要落下! return Return; }
代码就不放了啊,请诸位锻炼锻炼手指(逃
不要妄图追上西坠的太阳,而是要在黎明前就等着它!