程式設計練習 格雷編碼

2021-10-08 23:20:37 字數 629 閱讀 6725

注意:對於給定的 n,其格雷編碼順序並不唯一。根據以上定義, [0,2,3,1] 也是乙個有效的格雷編碼順序。

這個題有個小技巧,關於格雷碼的編碼規律,通過觀察可得到,

當 n=0 編碼為

當 n=1 編碼為

當 n=2 編碼為

當 n=3 編碼為

可以看出,當n>=1時,n的格雷編碼為第n-1的格雷編碼,在多個1,如n=3的格雷碼比n=2的格雷碼多了四個,而那四個格雷碼多了乙個移位的1。

/*

* 題目:格雷編碼

格雷編碼是乙個二進位制數字系統,在該系統中,兩個連續的數值僅有乙個位數的差異。

給定乙個代表編碼總位數的非負整數 n,列印其格雷編碼序列。即使有多個不同答案,你也只需要返回其中一種。

格雷編碼序列必須以 0 開頭*/

public

class

geleibianma};

int head=1;

for(

int i =

0; i < n; i++

) head<<=1;

//移位

}for

(integer x: list)

}}

89 格雷編碼

格雷編碼是乙個二進位制數字系統,在該系統中,兩個連續的數值僅有乙個位數的差異。給定乙個代表編碼總位數的非負整數 n,列印其格雷編碼序列。格雷編碼序列必須以 0 開頭。示例 1 輸入 2 輸出 0,1,3,2 解釋 00 0 01 1 11 3 10 2 對於給定的 n,其格雷編碼序列並不唯一。例如,...

leetcode 格雷編碼

題目 格雷編碼是乙個二進位制數字系統,在該系統中,兩個連續的數值僅有乙個位數的差異。給定乙個代表編碼總位數的非負整數 n,列印其格雷編碼序列。格雷編碼序列必須以 0 開頭。輸入 2 輸出 0,1,3,2 解釋 00 0 01 1 11 3 10 2 對於給定的 n,其格雷編碼序列並不唯一。例如,0,...

89 格雷編碼

格雷編碼是乙個二進位制數字系統,在該系統中,兩個連續的數值僅有乙個位數的差異。給定乙個代表編碼總位數的非負整數 n,列印其格雷編碼序列。格雷編碼序列必須以 0 開頭。示例 1 輸入 2 輸出 0,1,3,2 解釋 00 0 01 1 11 3 10 2 對於給定的 n,其格雷編碼序列並不唯一。例如,...