昨天参加腾讯的笔试,结果答的一塌糊涂,大题第一题是关于格雷码的递归实现的,当时没写出来,今天查了下资料试着用C++实现一下。

#include <iostream>
#include <cmath>
#include <string>
using namespace std;
unsigned int *uIntGaryCode(int N);//二进制格雷码
string *sGaryCode(int N);//字符串型格雷码 int main()
{
int N;
N=;
string *sCode=sGaryCode(N);
for(int i=;i<pow(,N);i++)
cout<<sCode[i]<<endl;
system("pause");
return ;
} unsigned int *uIntGaryCode(int N)//二进制型格雷码的递归实现
{
unsigned int *code=new unsigned int[(int)pow(,N)];
if(==N)
{
code[]=;
code[]=;
}
else
{
int length=(int)pow(,N-);
unsigned int*uiCode=uIntGaryCode(N-);
for(int i=;i<length;i++)
{
code[i]=uiCode[i] ;
code[length+i]= uiCode[length-i-]+pow(,N-);
}
delete []uiCode;
}
return code;
} string *sGaryCode(int N)//字符串型格雷码的递归实现
{
string *code=new string[(int)pow(,N)];
if(==N)
{
code[]='';
code[]='';
}
else
{
int length=(int)pow(,N-);
string *sCode=sGaryCode(N-);
for(int i=;i<length;i++)
{
code[i]=""+sCode[i];
code[length+i]=''+sCode[length-i-];
}
delete [] sCode;
}
return code;
}

最新文章

  1. 极路由2(极贰)ROOT并刷了OpenWrt
  2. 125个工具与技术(PMBOK2008)
  3. 打造Ubuntu下Java开发环境
  4. JavaWeb学习记录(十二)——商城购物之数据库操作的接口定义
  5. 搭建高性能计算环境(一)、Linux操作系统的安装和配置
  6. centos安装postfixadmin
  7. [Netbeans]为面板设置背景图片
  8. 搭建scala开发环境
  9. Android界面刷新方法
  10. C++编写ATM(2)
  11. CKEditor4.x部署和配置
  12. Java_HelloWorld
  13. Java编程 “提高性能” 应尽力做到
  14. struts ajax多级下拉菜单
  15. DCOS实践分享(2):基于Docker Compose和Swarm的Docker化之路
  16. linux进程管理和系统状态常用命令简介
  17. 基于HALCON的模板匹配方法总结
  18. POJ2763-Housewife Wind-树上单点修改区间求和
  19. Jni 线程JNIEnv,JavaVM,JNI_OnLoad(GetEnv返回NULL?FindClass返回NULL?)
  20. Consul vs. Zookeeper

热门文章

  1. Disruptor Ringbuffer
  2. 魔法上网之Ubuntu部署“酸酸”
  3. [转]windows消息机制(MFC)
  4. 五种WordPress防止垃圾评论方法-过滤垃圾评论提高WP运行效率
  5. Linux下安装rz、sz命令(文件上传下载)
  6. Ubuntu上开启Apache Rewrite功能的方法
  7. CodeForces 731D 80-th Level Archeology
  8. 洛谷——P2799 国王的魔镜
  9. 【tomcat】获取访问者真实IP
  10. 杭电oj 1002