本篇文章主要给出生成格雷码的代码,鉴于自身水平所限,如有错误,欢迎批评指正。(欢迎进Q群交流:874653199)
#include <iostream>
#include <fstream>
#include <Windows.h>
using namespace std;
void  graycode(int);
int n = 10;
int a[1024][10];
int main() {  
	int  i, j, num = 1;
	for (i = 0; i<n; i++) {
		num = 2 * num;
	}
	graycode(n);
	fstream code;
	code.open("格雷码.txt", fstream::out);
	for (i = 0; i<num; i++)
	{
		for (j = 0; j<n; j++)
		{
			code << a[i][j] << " ";
		}
		code << endl;
	}
	return 0;
}
void  graycode(int n) {
	int i, j, num = 1;
	if (n == 1)
	{
		a[0][0] = 0;
		a[1][0] = 1;
	}
	else {
		for (i = 0; i < n; i++)
		{
			num = 2 * num;
		}
		graycode(n - 1);
		for (i = 0; i < num / 2; i++)
		{
			for (j = 0; j < n - 1; j++)
			{
				a[num - 1 - i][j] = a[i][j];
			}
		}
		for (i = 0; i<num / 2; i++)
			a[i][j] = 0;
		for (i = num / 2; i<num; i++)
			a[i][j] = 1;
	}
}结果:




















