分析:根据题意要示\(1777\uparrow\uparrow1855\)的最后八位数字,即求\(1777\uparrow\uparrow1855\ mod\ 10^8\)。根据题目中的示例,迭代幂次是一种增长非常快的运算,所以\(1777\uparrow\uparrow1855\)会是一个天文数字,所以我们决不能通过求出它的值之后再对它取余,必须使用其它的办法。我们知道计算一个幂的余数可以使用快速幂模算法,通过这种方法我们可以在不求幂的情况下快速计算出幂模,而在python中我们使用自带的\(pow()\)函数即可以实现这种算法。

有了上面的递归方程,我们可以很容易的得到答案。可惜的是,在\(python\)中,题目要求的数据量导致求解时超出最大递归深度,无法求解,所以必须改用递推的方法。

使用上述递推关系,当\(\varphi_i=10^8\)时,我们就都求得了题目的解。代码如下:

本站所有文章如非特别声明皆为原创,转载请与作者本人联系并注明出处(原文链接)。 如对文章有任何疑问或需指出错误,可以此页面提出问题,我会尽量及时回复。