fjxmlhx 2008-05-03 03:05:00
点我顶贴
收藏
删除
先看格雷码的定义,还不会的继续往下看
先将N转换为二进制,然后从二进制数的最左端扫到二进制数的第二个数:for i:=二进制数的位数 downto 2 do a[i]:=a[i] xor a[i+1];A是存二进制数的数组
最后加个判0就搞定了。。
这道题。。。。搞专业知识
#7 姚斯宇@2008-02-28 02:32:00
922
回复
删除
比如:6 转为2进制,是1 1 0;
从第二个1,循环到0,一共变两次
由于 1 前面是 1,两者相同,则:
这一位是0。
0前是1,不同,则:
这一位是:1
所以:6————1 0 1;
逆序! 输出:101。
再者:13这个数,转为二进制,是:1101;
循环后三位。
1前是1————0;
0前是1————1;
1前是0————1;
所以变为1011;
逆序,输出1101;