<pre> <code>def gray_code(n): return n ^ (n >> 1) </code> </pre> <p>كود غراي (Gray Code): الإزاحة الدائرية و XOR</p>

C++ Hard loops

مهمة «<pre> <code>def gray_code(n): return n ^ (n >> 1) </code> </pre> <p>كود غراي (Gray Code): الإزاحة الدائرية و XOR</p>»

<div>عدد صحيح N (1 ≤ N ≤ 20). قم بتوليد تسلسل من 2^N عدد يمثل كود غراي للأعداد من 0 إلى 2^N-1. ثم لكل عدد في هذا التسلسل، قم بإجراء إزاحة دائرية لتمثيله الثنائي إلى اليمين بمقدار 1 بت وقم بتطبيق عملية XOR مع العدد الأصلي. اطبع القيم الناتجة بترتيب تصاعدي للأعداد الأصلية. استخدم فقط الحلقات والعمليات البتية، مع تجنب الاستدعاء الذاتي.</div>

تنسيق الإدخال

عدد صحيح واحد N (1 ≤ N ≤ 20).

تنسيق الإخراج

<p>2^N عددًا صحيحًا، مفصولة بمسافات، كل منها في سطر جديد.</p>

أمثلة

مثال 1

الإدخال
3 1 2 3 4 5 6 7 8 9
الإخراج
15

مثال 2

الإدخال
1 5
الإخراج
1 2 4 8 16

مثال 3

الإدخال
5 1 2 3 4 5 2 3
الإخراج
12

مثال 4

الإدخال
3
الإخراج
1 0 0 2 0 4 4 6
main.cpp