递归方法求解循环赛日程表问题的C语言伪代码
时间: 2023-06-04 15:06:51 浏览: 115
以下是递归方法求解循环赛日程表问题的C语言伪代码:
```
void schedule(int n)
{
int i, j;
int table[MAX][MAX];
if (n == 2) {
table[1][1] = 1;
table[2][2] = 1;
table[1][2] = 2;
table[2][1] = 2;
} else {
schedule(n / 2);
for (i = 1; i <= n / 2; i++) {
for (j = n / 2 + 1; j <= n; j++) {
table[i][j] = table[i][j - n / 2] + n / 2;
}
}
for (i = n / 2 + 1; i <= n; i++) {
for (j = n / 2 + 1; j <= n; j++) {
table[i][j] = table[i - n / 2][j - n / 2];
}
}
for (i = 1; i <= n / 2; i++) {
for (j = i + 1; j <= n / 2; j++) {
table[j][i] = table[i][j];
}
}
for (i = n / 2 + 1; i <= n; i++) {
for (j = i + 1; j <= n; j++) {
table[j][i] = table[i][j];
}
}
}
// 输出日程表
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) {
printf("%d ", table[i][j]);
}
printf("\n");
}
}
```