当前位置:   article > 正文

篮球循环赛 c语言实现,noj算法题——循环赛日程表

请编写程序给出球赛日程表。

时限:1000ms 内存限制:10000K  总时限:3000ms

描述: 用分治算法生成循环赛日程表(1到2的n次方个人)

输入: 一个整数n

输出: 循环赛日程表(1到2的n次方个人)

输入样例:

3

输出样例:

1 2 3 4 5 6 7 8

2 1 4 3 6 5 8 7

3 4 1 2 7 8 5 6

4 3 2 1 8 7 6 5

5 6 7 8 1 2 3 4

6 5 8 7 2 1 4 3

7 8 5 6 3 4 1 2

8 7 6 5 4 3 2 1

C语言代码如下:

#include

#include

int a[10005][10005];

void time(int k,int n)

{

int i,j;

int m,s,t;

for(i=1;i<=n;i++){

a[1][i]=i;

}

m=1;

for(s=1;s<=k;s++){

n/=2;

// printf("%d",n);

for(t=1;t<=n;t++){

for(i=m+1;i<=2*m;i++){

for(j=m+1;j<=2*m;j++){

a[i][j+(t-1)*m*2] = a[i-m][j+(t-1)*m*2-m];//右下等于左上

a[i][j+(t-1)*m*2-m] = a[i-m][j+(t-1)*m*2];//左下等于右上

}

}

}

m*=2;

}

}

void main()

{

int i,n,k,j;

scanf("%d",&k);

n=1;

for(i=0;i

n*=2;

}

time(k,n);

for(i=1;i<=n;i++){

for(j=1;j<=n;j++){

if(j==n){

printf("%d",a[i][j]);

}

else

printf("%d ",a[i][j]);

}

printf("\n");

}

return 0;

}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/42606
推荐阅读
相关标签
  

闽ICP备14008679号