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

Chương trình chuyển đổi mã màu xám cho một số nhất định trong python

Giả sử chúng ta có một số n, chúng ta phải tìm mã màu xám cho số đã cho đó (nói cách khác là mã màu xám thứ n). Như chúng ta đã biết, mã màu xám là một cách sắp xếp thứ tự các số nhị phân sao cho các giá trị của mỗi số liên tiếp khác nhau đúng một bit. Một số mã màu xám là:[0, 1, 11, 10, 110, 111, v.v.]

Vì vậy, nếu đầu vào là n =12, thì đầu ra sẽ là 10 vì 12 là (1100) trong hệ nhị phân, mã màu xám tương ứng sẽ là (1010) có giá trị tương đương thập phân là 10.

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

  • Xác định một hàm giải quyết (). Điều này sẽ mất n
  • nếu n giống 0, thì
    • trả về 0
  • x:=1
  • trong khi x * 2 <=n, thực hiện
    • x:=x * 2
  • trả về x + giải quyết (2 * x - n - 1)

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn:

Ví dụ

class Solution:
   def solve(self, n):
      if n == 0:
         return 0
      x = 1
      while x * 2 <= n:
         x *= 2
      return x + self.solve(2 * x - n - 1)

ob = Solution()
n = 12
print(ob.solve(n))

Đầu vào

12

Đầu ra

10