Giả sử chúng ta có một giá trị n. Chúng ta phải tìm chữ số cuối cùng của dãy S. Phương trình của S được cho dưới đây -
$$ \ sum_ {i =0 \:2 ^ {^ {i}} \ leqslant n} ^ {\ alpha} \ sum_ {j =0} ^ {n} 2 ^ {2 ^ {^ {i} + 2j }} $$
Vì vậy, nếu đầu vào là n =2, thì đầu ra sẽ là 6 vì:ở đây chỉ có i =0 và i là hợp lệ, vì vậy
- S 0 =2 ^ (2 ^ 0 + 0) + 2 ^ (2 ^ 0 + 2) + 2 ^ (2 ^ 0 + 4) =42
- S 1 =2 ^ (2 ^ 1 + 0) + 2 ^ (2 ^ 1 + 2) + 2 ^ (2 ^ 1 + 4) =84 Tổng là 42 + 84 =126, do đó chữ số cuối cùng là 6.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- tổng số:=0
- tạm thời:=1
- trong khi tạm thời <=n, thực hiện
- tổng số:=tổng số + (2 ^ temp mod 10)
- temp:=temp * 2
- tổng:=tổng * (1 + (4 khi n lẻ nếu không 0)) mod 10
- tổng số:=tổng số + (2 ^ temp mod 10)
- tổng trả lại
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
def solve(n):
total= 0
temp = 1
while (temp <= n):
total += pow(2, temp, 10)
temp *= 2
total = total * (1 + (4 if n %2 ==1 else 0)) % 10
return total
n = 2
print(solve(n)) Đầu vào
2
Đầu ra
6