##不多说,直接上问题图片
大概意思就是说:现在又(x1,x2,.........,xn)这样的一个自然数组,然后让你计算(x1^(x2^(x3^..........(xn-1^xn)))这个数的个位数字是多少
这个是codewars上面的一个问题初看以为比较简单以为就是利用1~9幂运算末尾的周期性来进行计算,但是后来发现好像不能,如果是简单的计算x1^x2当然没问题,但是当计算x1^x2^x3时,我们首先计算x2^x3末尾数字的n,但我们接下来就无法保证x1^n=x1^x2^x3(或者可以保证?需要拿数论的知识证明?
我也参考了一个博主的解决方法,不是很理解:https://blog.csdn.net/qq_41882147/article/details/81065521
给个思路,理论即可,谢谢
我告诉你个公式你就明白了,x1^x2 = x2^x1 那么x1^n我们可以换成n^x1,那么他的最后一位就不会改变
按题目例子3^(4^2)
可以先求4^2的末尾,这个使用高阶幂的分解去求最后一位,
比如,我们求4^4的末尾,可以化成(4^2)*(4^2)=16*16,末尾就是6*6=6
然后我们就得出3^(4^2) = 3^(6) = 6^3 = 1
理解了吗