#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define Max 64
int schedule[Max+1][Max+1];
int Divide(int begin,int num)
{
int i, j;
if (num == 2)
{
schedule[begin][1] = begin;
schedule[begin][2] = begin + 1;
schedule[begin+1][1] = begin + 1;
schedule[begin+1][2] = begin;
return 0;
}
Divide(begin, num/2);
Divide(begin + num/2, num/2);
for (i = begin + num/2; i < begin + num; i++)
{
for (j = num/2 + 1; j <= num; j++)
{
schedule[i][j] = schedule[i-num/2][j-num/2];
}
}
for (i = begin; i < begin + num/2; i++)
{
for (j = num/2 + 1; j <= num; j++)
{
schedule[i][j] = schedule[i+num/2][j-num/2];
}
}
}
int main(void)
{
int n,i,j;
printf("请输入参赛队伍数量:(必须为2的N次方)\n");
scanf("%d",&n);
if(n%2!=0&&n>0)
{
printf("您输入的值有误!!!");
exit(1);
}
Divide(1,n);
printf(" 编号 ");
for(i=1;i<n;i++)
{
printf("第%d天 ",i);
}
printf("\n");
for(i=1;i<n+1;i++)
{
for(j=1;j<n+1;j++)
{
printf(" %d ",schedule[i][j]);
}
printf("\n");
}
return 0;
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交