Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm chữ số cuối cùng của dãy đã cho cho n đã cho bằng Python

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 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