面試題 格雷碼的實現

2021-07-10 11:50:21 字數 517 閱讀 8528

在一組數的編碼中,若任意兩個相鄰的**只有一位二進位制數不同, 則稱這種編碼為格雷碼(gray code),請編寫乙個函式,使用遞迴的方法生成n位的格雷碼。

給定乙個整數n,請返回n位的格雷碼,順序為從0開始。

格雷碼介紹

public

class 格雷碼

//遞迴前n-1的格雷碼

string last=getgray(n-1);

//格雷碼計算方式,前一次格雷碼分兩部分,假設01

for(int i=0;i"0"+last[i];//前半部分的二進位製碼前加 0

graycode[graycode.length-i-1]="1"+last[i];//後半部分的二進位製碼前加1

}return graycode;

}public

static

void

main(string args)

}}

格雷碼的實現 google 面試題

問題 產生n位元的所有格雷碼。格雷碼 gray code 是乙個數列集合,每個數使用二進位來表示,假設使用n位元來表示每個數字,任兩個數之間只有乙個位元值不同。例如以下為3位元的格雷碼 000 001 011 010 110 111 101 100 如果要產生n位元的格雷碼,那麼格雷碼的個數為2 n...

格雷碼的實現

問題 產生n位元的所有格雷碼。格雷碼 gray code 是乙個數列集合,每個數使用二進位來表示,假設使用n位元來表示每個數字,任兩個數之間只有乙個位元值不同。例如以下為3位元的格雷碼 000 001 011 010 110 111 101 100 如果要產生n位元的格雷碼,那麼格雷碼的個數為2 n...

格雷碼的實現

問題 產生n位元的所有格雷碼。格雷碼 gray code 是乙個數列集合,每個數使用二進位來表示,假設使用n位元來表示每個數字,任兩個數之間只有乙個位元值不同。例如以下為3位元的格雷碼 000 001 011 010 110 111 101 100 如果要產生n位元的格雷碼,那麼格雷碼的個數為2 n...