P2673 《瞿葩的数字游戏》T1-数字王国的门神
Albedo
·
·
题解
P2673 《瞿葩的数字游戏》T1-数字王国的门神
Solution
这道题,一看就很牛逼,再一看大家的代码长度,觉得这是一道诈骗题。
我们发现这个数列不好处理,直接在他前面加一个 0. ,然后结果就是一个神奇的小数,表达式为:
\sum_{i=1}^{\infty} \frac{1}{\sqrt{5}}[(\frac{1+\sqrt{5}}{2})^i-(\frac{1-\sqrt{5}}{2})^i]\times(\frac{1}{10})^i
然后就是路漫漫的化简之路。
\sum_{i=1}^{\infty} \frac{1}{\sqrt{5}}[(\frac{1+\sqrt{5}}{20})^i-(\frac{1-\sqrt{5}}{20})^i]
然后我们发现,我们把垃圾的 \frac{1}{\sqrt{5}} 去掉,答案就是两个无限的等比数列,反手一个等比数列求和公式。
前半部分:
\frac{1}{\frac{19-\sqrt{5}}{20}}-1=\frac{20}{19-\sqrt{5}}-1=\frac{1+\sqrt{5}}{19-\sqrt{5}}
后半部分:
\frac{1}{\frac{19+\sqrt{5}}{20}}-1=\frac{20}{19+\sqrt{5}}-1=\frac{1-\sqrt{5}}{19+\sqrt{5}}
两个减一减:
\frac{19+19\sqrt{5}+\sqrt{5}+5-19+19\sqrt{5}+\sqrt{5}-5}{356}
最后得到:
\frac{40\sqrt{5}}{356}
所以最后结果是:
\frac{40}{356}=\frac{10}{89}
然后我们做完了这道题。
Code
int main()
{
l=read();r=read();
mol=10;dom=89;
for (i=1;i<=r;i++)
{
x=mol*10/dom;
if (i>=l) printf("%lld",x);
mol=mol*10 % dom;
}
puts("");
return 0;
}