একটি সংখ্যা n দেওয়া আছে। এর গ্রে কোড (nth gray code) বের করতে হবে। গ্রে কোড হল বাইনারি ক্রম যেখানে প্রতিটি সन्नিহিত সংখ্যা ঠিক এক বিট দিয়ে আলাদা হয়।
উদাহরণ: n = 12 হলে আউটপুট ১০, কারণ ১২ বাইনারি ১১০০, গ্রে কোড ১০১০ যherin দশমিক ১০।
সমাধানের ধাপসমূহ
- রিকার্শিভ ফাংশন solve(n) সংজ্ঞায়িত করুন
- যদি n == 0 হয় তবে 0 ফেরত দিন
- x := 1; যবত x*2 <= n, x := x*2
- x + solve(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