先将N转换为二进制,然后从二进制数的最左端扫到二进制数的第二个数:for i:=二进制数的位数 downto 2 do a[i]:=a[i] xor a[i+1];A是存二进制数的数组
最后加个判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;
不过比我的想法更易于实现。
快速帮助 | 运行状态 | 反馈举报 | 关于我们 | 免责声明 | 浙ICP备11060257号 Processed in 0.0069 Second(s) Copyright (C) RQNOJ 2007-2019. All Rights Reserved.