【发布时间】:2015-04-11 04:10:31
【问题描述】:
我的任务是使用递归打印出灰色代码。用户在0-8 之间输入一个位值,因此您可以拥有的strings 的最大数量是256 (2^8)。
我已经完成了基本情况,但我不知道我会为 else 部分做什么。
到目前为止我的代码:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
void gcodes (int n) {
char bits[256][8];
int i, j;
int x = pow (2, n);
if (n == 1) {
bits[0][0] = '0';
bits[1][0] = '1';
} else {
gcodes (n-1);
}
for (i=0; i<x; i++) {
for (j=0; j<n; j++) {
printf("%c", reverse[i][j]);
}
printf("\n");
}
}
int main(int argc, char *argv[]) {
if (argc != 2) {
printf("Invalid number of arguments\n");
return 0;
}
int n;
n = atoi (argv[1]);
if (n > 8 || n <= 0) {
printf("Invalid integer\n");
return 0;
}
gcodes (n);
}
【问题讨论】: