我需要找到x1 ^ (x2 ^ (x3 ^ (... ^ xn)))
作为列表传递给函数的整数的单位数字。例如,输入[3, 4, 2]
将返回,1
因为它3 ^ (4 ^ 2) = 3 ^ 16 = 43046721
的最后一位是 1。该函数需要尽可能高效,因为显然尝试计算767456 ^ 981242
不是很快。
我尝试了几种方法,但我认为解决这个问题的最好方法是使用序列。例如,任何以 a 结尾的数字1
,当求幂时,总是以 结尾1
。对于2
,结果数字将以 或 结尾2, 4, 6 or 8
。如果将一个数字进行幂运算,则结果数字的最后一位数字将遵循基于指数最后一位数字的模式:
1:序列为 1
2:序列为 2, 4, 8, 6
3:序列为 3, 9, 7, 1
4:顺序是4、6
5:序列为 5
6:序列为 6
7:序列为 7, 9, 3, 1
8:序列为 8、4、2、6
9:序列为 9、1
0:序列为 0
我认为计算整体最后一位数字的最简单方法是向后计算列表并一次计算每个计算的最后一位数字,直到我回到开始,但我不知道如何做到这一点?如果有人可以帮助或建议另一种与此相同或更有效的方法,我们将不胜感激。
到目前为止我有这个代码,但它不适用于非常大的数字
白衣染霜花
明月笑刀无情
30秒到达战场
相关分类