问题描述
Gray码是一个长度为2n的序列。序列中无相同的元素,每个元素都是长度为n位的串,相邻元素恰好只有一位不同。用分治策略设计一个算法对任意的n构造相应的Gray码。
编程任务
利用分治策略试设计一个算法对任意的n构造相应的Gray码。
数据输入
由文件input.txt提供输入数据n。
实现提示
把原问题分解为两个子问题,分别对两个子问题的每个数组后一位加0和1
解决思路:
①根据输出结果发现一定用二维数组进行输出
②这种题肯定是有规律可找的 百度发现格雷码规律
百度格雷码特征
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int Out[5000][5000]={
0};
void Output(int n,int num)
//n=几位 num=pow(2,n)
{
if(n==1) //num=2
{
Out[0