生成格雷码
2016-03-20 09:50
429 查看
在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。
给定一个整数n,请返回n位的格雷码,顺序为从0开始。
测试样例:
给定一个整数n,请返回n位的格雷码,顺序为从0开始。
测试样例:
1
返回:["0","1"]
class GrayCode { private: vector<string>res; public: void gray(int i,int n,string& str) { int num=0,j=n-1; string s=str; if(i<(1<<n)) num=i^(i>>1); else return; while(num!=0) { str[j]=num%2-0+'0'; num=num/2; j--; } res.push_back(str); gray(i+1,n,s); } vector<string> getGray(int n) { // write code here if(n<=0) return res; string str=""; for(int i=0;i<n;i++) str+='0'; res.push_back(str); gray(1,n,str); return res; } };
相关文章推荐
- 神经网络模型算法与生物神经网络的最新联系
- datawindowchild的GetSQLSelect()方法获取 sql
- HTML5 - Canvas标签<介绍>
- 对datatable进行linq过滤
- javascript——MD5加密脚本
- 求职之路
- IT忍者神龟之Java调用net的webservice故障排除实战分享
- ProgressDialog的dismiss方法与cancel方法的区别
- BC#76.2DZY Loves Balls
- 第四周项目5:用递归方法求解(1)求n的阶乘
- 查看网站后台
- CodeForces 630 G. Challenge Pennants(组合数学)
- Oracle 11g 新特性 -- Database Replay (重演)
- 日经春秋 20160320
- [20160320] 刚刚会用的GitHub / WarTime-Project On GitHub / BestCoder Round #76
- 【原】Spark Rpc通信源码分析
- 一道笔试题 - 数字转大写金额
- 【HDU5647 BestCoder Round 76 (div1)B】【树形DP】DZY Loves Connecting 一棵树的所有生成子树的大小乘积
- POJ1833 排列
- 连续发送多份小数据时40ms延迟问题