1009: 格雷码

时间限制: 1 Sec  内存限制: 128 MB
提交: 90  解决: 78
[提交][状态][讨论版]

题目描述

对于给定的正整数n,格雷码为满足如下条件的一个编码序列:
(1) 序列由2^n个编码组成,每个编码都是长度为n的二进制位串。
(2) 序列中无相同的编码。
(3) 序列中位置相邻的两个编码恰有一位不同。
例如:n=2时的格雷码为:{00, 01, 11, 10}。

输入

m个测试例的数据,每个测试例的数据由一个正整数n(20>n>0)组成,以0结束。

输出

对于每个测试例n,输出2^n个长度为n的格雷码。(在每个格雷码内,两个位之间没有空格如,00输出为:00)。两个测试例的输出数据之间用一个空行隔开,最后一个测试例后两个空行。

样例输入

4
5
0

样例输出

0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000 00000
00001
00011
00010
00110
00111
00101
00100
01100
01101
01111
01110
01010
01011
01001
01000
11000
11001
11011
11010
11110
11111
11101
11100
10100
10101
10111
10110
10010
10011
10001
10000
#include<iostream>
#include<cstring>
#include<cstdio> using namespace std; char *toString(int x){
static char buff[];
sprintf(buff, "%d", x);
return buff;
}
string num2Binary(int num, int bitNum){
string ret="";
for(int i = bitNum - ; i >= ; i--){
ret += toString((num >> i) & );
}
return ret;
}
void getGrayCode(int bitNum){
for(int i = ; i < ( << bitNum); i++){
int grayCode = (i >> ) ^ i;
cout << num2Binary(grayCode, bitNum) <<"\n";
}
cout << '\n';
}
int main(){
int n;
while(scanf("%d", &n) == && n){
getGrayCode( n );
}
}

最新文章

  1. 基于webdriver的jmeter性能测试-通过jmeter实现jar录制脚本的性能测试
  2. DBLink创建 ORA-12154: TNS: 无法解析指定的连接标识符
  3. 如何提高Service的优先级避免被杀死或者杀死后如何再次重启Service?
  4. 3D Touch集成过程整理
  5. 雅虎Yahoo 前段优化 14条军规
  6. 【转】写一个标准宏MIN,这个宏输入两个参数并返回较小的那个。另外当写下least=MIN(*p++,b)时会发生什么
  7. 关于setCharacterEncoding报错
  8. 【HDOJ】1903 Exchange Rates
  9. Bootstrap图片旋转轮播的实现
  10. HDU 2457 DNA repair (AC自动机+DP)
  11. 线段树练习 3&amp;&amp;P3372 【模板】线段树 1
  12. socket和webService的区别
  13. Python动态绑定属性slots的使用
  14. ssm 出现 Method threw &#39;org.apache.ibatis.binding.BindingException&#39; exception.Invalid bound statement (not found)……
  15. Windsor
  16. Create-React-App脚手架使用方法
  17. TOMCAT内存溢出及大小调整的实现方法
  18. Shell - 简明Shell入门04 - 判断语句(If)
  19. CF989C A Mist of Florescence (构造)
  20. POJ 3067 - Japan - [归并排序/树状数组(BIT)求逆序对]

热门文章

  1. shell练习--PAT题目1004: 成绩排名 !(失败案例,shell运行超时)
  2. shiro框架学习-5-自定义Realm
  3. 运维工程师之IDC系列
  4. vsftp配置文件
  5. 创建一个简单的 Springboot web项目
  6. html area标签 语法
  7. BZOJ 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛 水题~
  8. Tire树简介
  9. 修改docker下mysql配置
  10. shell命令别名