1293 格雷码
来源:互联网 发布:新时代软件下载 编辑:程序博客网 时间:2024/06/09 16:09
描述
格雷码(Gray code),又叫循环二进制码或反射二进制码。
- 格雷码有2^n个不同的元素。
- 每个元素含有n个0或1,即有n个位。
- 每对相邻的元素都只有一位不同。
例如,当n=2时,曾序格雷码是00,01,11,10.
现在,给你一个正整数n,生成它的格雷码序列,它应由例子扩展而来,并且以全0数开始。(具体见样例)
输入
对于每组数据,仅有一行,包含一个整数n(0< n < 20)。输入以0结尾。
输出
对于每组数据,输出对应的格雷码序列,
样例输入
1
2
3
0
2
3
0
样例输出
0
1
00
01
11
10
000
001
011
010
110
111
101
100
解题思路:
此题是求N位所有0和1的组合。其实是按照位变动来进行输出的,可以创建两个函数,一个用来负责转换,一个负责输出。这样题目的思路比较清楚。
#include <stdio.h>#include <string.h>void putsgray(int a[],int m){int i;for(i=m;i>0;i--) printf("%d",a[i]);printf("\n");}void gray(int n,int a[],int m){if(n==1){a[n]=1-a[n];putsgray(a,m);}else{gray(n-1,a,m);a[n]=1-a[n];putsgray(a,m);gray(n-1,a,m);}}main(){int a[21]={0};int n;scanf("%d",&n);while(n!=0){ memset(a,0,sizeof(a));putsgray(a,n);gray(n,a,n);scanf("%d",&n);}}
- 1293 格雷码
- 格雷码
- 格雷码
- 格雷码
- 格雷码
- 格雷码
- 格雷码
- 格雷码
- 格雷码
- 格雷码
- 格雷码
- 格雷码
- 格雷码
- 格雷码
- 格雷码
- 格雷码
- 格雷码
- 格雷码
- 5. A boaster and a liar are cousins-german. 吹牛和说慌本是同宗
- SHELL [正则表达式][grep][tr]
- 我做的小小聊天器,java swing实现
- 1291 快斗的烦恼
- 1292 奥运倒计时
- 1293 格雷码
- 1294 倒水问题
- Linux下高并发socket最大连接数所受的各种限制
- const 迭代器和const 迭代型
- 1295 快乐的YK
- SQL求昨天的时间
- 1297 特别的幸运数
- 1298 删数问题
- 基于linuxsuse10安装db2 8.2.4