在一組數的編碼中,若任意兩個相鄰的**只有一位二進位制數不同, 則稱這種編碼為格雷碼(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...