?? graycode.cpp
字號:
#include <stdio.h>
int A[1024][10];//定義二維數(shù)組A[][],取n=10位的格雷碼構(gòu)造
void Graycode(int n)
{ int num,j;
num=1; //num表示n個元素可以輸出個格雷碼
if(n==1) //當n=1時,格雷碼即為0和1
{ A[0][0]=0;
A[1][0]=1;
}
if(n>=2)
{ Graycode(n-1); //當n>=2,采用遞歸調(diào)用,一步步分治到n=1時的情況,
for(int i=0;i<=n-1;i++)
num=num*2;
for(i=0;i<=num/2-1;i++)
{for(j=0;j<n-1;j++)
A[num-1-i][j]=A[i][j];
}
for(i=0;i<=num/2-1;i++)
A[i][j]=0; //第n-1列前半部分賦0
for(i=num/2;i<=num-1;i++)
A[i][j]=1; //第n-1列后半部分賦1
}
}
void main()
{ int n,num;
num=1;
printf("開始演示程序\n");
printf("請輸入格雷碼的n不超過10值:");
scanf("%d",&n);
for(int i=0;i<=n-1;i++)
num=num*2;
Graycode(n);
for( i=0;i<num;i++)
{for(int j=0;j<n;j++)
printf("%d",A[i][j]);
printf("\n");
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -