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

Chương trình kiểm tra xem số có phải là tổng lũy ​​thừa của ba trong Python hay không

Giả sử chúng ta có một số n, chúng ta phải kiểm tra xem có thể biểu diễn n dưới dạng tổng các lũy thừa phân biệt của ba hay không. Một số nguyên y được cho là lũy thừa của ba nếu tồn tại một số nguyên x sao cho y =3 ^ x.

Vì vậy, nếu đầu vào là n =117, thì đầu ra sẽ là True vì 117 =3 ^ 4 + 3 ^ 3 + 3 ^ 2 + =81 + 27 + 9.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • đối với tôi trong phạm vi 16 đến 0, giảm đi 1, thực hiện

    • nếu n> =3 ^ i, thì

      • n:=n - 3 ^ i

  • nếu n> 0 thì

    • trả về Sai

  • trả về True

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):
   for i in range(16, -1, -1):
      if n >= pow(3,i):
         n -= pow(3,i)

   if n > 0:
      return False

   return True

n = 117
print(solve(n))

Đầu vào

117

Đầu ra

True