मान लीजिए कि हमारे पास एक नंबर n है, हमें उस दिए गए नंबर के लिए ग्रे कोड (दूसरे शब्दों में nth ग्रे कोड) खोजना होगा। जैसा कि हम जानते हैं कि ग्रे कोड बाइनरी नंबरों को ऑर्डर करने का एक तरीका है जैसे कि प्रत्येक लगातार संख्या के मान बिल्कुल एक बिट से भिन्न होते हैं। कुछ ग्रे कोड हैं:[0, 1, 11, 10, 110, 111, और इसी तरह]
इसलिए, यदि इनपुट n =12 की तरह है, तो आउटपुट 10 होगा क्योंकि बाइनरी में 12 (1100) है, संबंधित ग्रे कोड (1010) होगा जिसका दशमलव समकक्ष 10 है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
- एक फ़ंक्शन को हल करें() परिभाषित करें। इसमें n . लगेगा
- यदि n, 0 के समान है, तो
- वापसी 0
- x :=1
- जबकि x * 2 <=n, करते हैं
- x :=x * 2
- रिटर्न x + सॉल्व(2 * x - n - 1)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
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))
इनपुट
12
आउटपुट
10