P2673 《瞿葩的数字游戏》T1-数字王国的门神

· · 题解

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;
}