c++实现gray code(格雷码)
今天别人问的一道题,强调用分治法实现 =。=
百度了一下格雷码,然后写了一下。
关于格雷码大家看百度的吧,特别详细,贴个图:
代码如下(header_file.h是我自己写的一个头文件,包括常见的vector iostream等):
#include"header_file.h" using namespace std;vector<string> gray_code(int n) {if(n==1){vector<string> v;v.push_back("0");v.push_back("1");return v;}else{vector<string> v;vector<string> v1;v1=gray_code(n-1);for(int i=0;i<v1.size();i++){v.push_back("0"+v1[i]);}for(int i=(v1.size()-1);i>-1;i--){v.push_back("1"+v1[i]);}return v;} }int main(int argc,char *argv[]) {int n;cout<<"input n:";cin>>n;vector<string> v;v=gray_code(n);for(int i=0;i<v.size();i++){cout<<v[i]<<endl;} }
最后:过程是重要的,代码只是你逻辑的体现 -。-
转载于:https://www.cnblogs.com/wswang/p/5111122.html
c++实现gray code(格雷码)相关推荐
- Gray Code(格雷码) C++多方法实现
简介 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即"首尾相连",因此又称循环 ...
- LeetCode Gray Code 格雷码
题意:提供一个数字n,代表二进制的个数,那么就有2的n次方个可能性了,从0到2^n-1.将其转成格雷码,再直接将二进制的格雷码按二进制的读法变成整数,装在vector容器中返回,要有序(否则你直接将0 ...
- 格雷码基础和生成的几种方法
1 格雷码: 1.1 格雷码引言: 在数字系统中,常要求代码按一定顺序变化. 在机器视觉里面,编码结构光也是按照一定的顺序进行变化,最常用的就是Binary,但是,二进制的纯粹的编码,由于二进制的进制 ...
- 结构光之格雷码编码加相移算法详解与实现(多种编码程序)
格雷码+相移法既可以减少格雷码的编码位数,加快解码速度,也可以弥补单纯的相移法和格雷码法的对不连续位置难以重建的缺点. 操作过程如下: 采用格雷码与相移结合的时间编码方法,具体的编码方法为:首先向被测 ...
- 自然二进制数与格雷码的相互转换
自然二进制码与格雷码的相互转换 一.前言 二.自然二进制数转格雷码 2.1 自然二进制数转格雷码原理 2.2 verilog代码 2.3 Testbench 2.4 仿真结果 三.格雷码转自然二进制数 ...
- 【格雷码】LeetCode 89. Gray Code
LeetCode 89. Gray Code Solution1:我的答案 穷举法,比较笨 注意:牢记vector中find()函数的用法 class Solution { public:vector ...
- gray code java_格雷码Gray Code详解
格雷码简介 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即"首尾相连",因此又 ...
- 浅谈格雷码(Grey Code)在信息学竞赛中的应用
1.格雷码的概念 1.性质 格雷码(Grey Code),又叫循环二进制码或反射二进制码,是一种编码方式,它的基本特点是任意两个相邻的格雷码只有一位二进制数不同. 常用的二进制数与格雷码间的转换关系如 ...
- LeetCode(89):格雷编码 Gray Code(Java)
2019.7.19 #程序员笔试必备# LeetCode 从零单刷个人笔记整理(持续更新) 智力题,本题的关键在于搞清楚格雷编码的生成过程, G(i) = i ^ (i/2). 如 n = 3: G( ...
- 二进制与格雷码之间的转换的Verilog实现(更多一点的讨论)
目录 前言 二进制码转换为格雷码的方法 格雷码转换为二进制码的过程 更多一点讨论之generate for 更多一点讨论之for 最后对格雷码的介绍 前言 以前的博客也有写这方面的内容,只是没有显式的 ...
最新文章
- private关键字和构造方法
- pku1384---Piggy-Bank(动态规划)
- UIBubbleTableView
- ***微信 该连接无法访问问题解决办法
- 学术科普 | 漫威电影中的智能大脑
- struts项目部署在Tomca上在断网情况下启动报错
- AttemptID:attempt_1557891872692_0001_r_000000_0 Timed out after 3600 secs
- Linux操作系统的诞生及主要特性
- Hbuilder开发HTML5 APP之图标和启动页制作
- 类似新浪微博和google图片的HTML5实现图片拖拽上传功能
- RabbitMq的基本认识和配置(一)
- 新颖的自我介绍_有创意的自我介绍模板(精选6篇)
- wowza 降低延迟
- DELMIA软件:机器人与行走轴联动实现长焊缝弧焊焊接虚拟仿真
- BT.601和BT.656
- uniapp 电商小程序 订单30分钟倒计时
- 【区块链 | AAVE】一文讲清-DeFI王者AAVE最新的稳定币GHO提案
- Wifi热点java_用笔记本电脑开启热点Java小程序
- java实现word文档的导出
- python字符串操作入门十八讲——合集一