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