Problem
The gray code is a binary numeral system where two successive values differ in only one bit.
Given a non-negative integer n representing the total number of bits in the code, print the sequence of gray code. A gray code sequence must begin with 0.
Example 1:
| 1 |  | 
Example 2:
| 1 |  | 
Explanation
- 
    We list the first couple of grey code and its corresponding binary number. 1 
 2
 3
 4
 5
 6
 7
 8
 9Int Grey Code Binary 0 000 000 1 001 001 2 011 010 3 010 011 4 110 100 5 111 101 6 101 110 7 100 111
- 
    There is a formula to convert binary number to its grey code, and formula to convert grey code to its binary. 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11unsigned int binaryToGray(unsigned int num) { return (num >> 1) ^ num; } unsigned int grayToBinary(unsigned int num) { unsigned int mask; for (mask = num >> 1; mask != 0; mask = mask >> 1) { num = num ^ mask; } return num; }
Solution
| 1 |  |