问题描述:
For a given list [x1, x2, x3, ..., xn]
compute the last (decimal) digit of x1 ^ (x2 ^ (x3 ^ (... ^ xn)))
.
E. g.,
last_digit([3, 4, 2]) == 1
because 3 ^ (4 ^ 2) = 3 ^ 16 = 43046721
.
Beware: powers grow incredibly fast. For example, 9 ^ (9 ^ 9)
has more than 369 millions of digits. lastDigit
has to deal with such numbers efficiently.
Corner cases: we assume that 0 ^ 0 = 1
and that lastDigit
of an empty list equals to 1.
This kata generalizes Last digit of a large number; you may find useful to solve it beforehand.
代码实现:
#codewars第二十八题
def last_digit(lst):
n = 1
for x in reversed(lst):
# 如果直接写x ** (n % 4