C++递归实现格雷码
2015-09-07 16:00
330 查看
#include<iostream> #include<string> using namespace std; void GrayCode(int n,string *data) { if(n==1) { data[0]="0"; data[1]="1"; return; } GrayCode(n-1,data); int len=(int)pow(2,n); for(int i=len/2;i<len;i++) { data[i]="1"+data[len-i-1]; } for(int i=0;i<len/2;i++) { data[i]="0"+data[i]; } } int main() { int n; cin>>n; string *data=new string[(int)pow(2,n)]; GrayCode(n,data); for(int i=0;i<(int)pow(2,n);i++) { cout<<data[i]<<endl; } }
相关文章推荐
- C#与C/C++的交互
- c语言中printf("N多字怎么打的快");(vim编辑器)
- 浅谈C++的语句语法与强制数据类型转换
- C++中赋值运算符与逗号运算符的用法详解
- 内联函数与宏的简单说明
- C++类成员声明时候不能初始化
- C++中cin、cin.get()、cin.getline()、getline()
- 【转】c++中vector的用法
- c++ 中 `++i` 与 `i++` 在运算表达式中的优先级
- C++实现Windows下的Daemon,监控多个进程
- 【C++学习笔记】sizeof()的用法与字节对齐
- 关于C++ const 的全面总结
- iOS开发之c语言入门教程
- C语言字符串操作总结大全
- C++ 之 访问控制与访问控制的继承
- C/C++ 多线程入门
- windows下c++编写多线程
- 详解C++中命名空间的意义和用法
- C++ 标准模板库(STL)
- C++通过Callback向C#传递数据