计算n ^ n中的第一个和最后一个k位

One*_*ror 2 c java algorithm math

我需要打印第一个k数字和最后一个k数字


n^n (n to the power of n, where n is an integer) 例如 :


Input       Output

n k         First k digits       Last k digits

4 2    -->  25                   56
9 3    -->  387                  489
Run Code Online (Sandbox Code Playgroud)

我觉得它需要一些聪明的数学,但是我无法想到任何东西.请建议一种解决问题的方法.

ron*_*chn 7

最后的k个数字很简单,你只需要计算它modulo 10^k.为此,在每次乘法后,只应用模数,即.intermediate_result %= 10^k.

当然,您需要10^k使用其他方法进行计算,因为^这并不意味着C或Java的强大功能.

要查找前k个数字,请参阅取幂的前n个数字.