用C++编写循环赛日程表

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

循环赛日程表

问题描述:设有n位选手参加网球循环赛,n=2^k,循环赛共进行n-1天,每位选手要与其他n-1位选手比赛一场,且每位选手每天比赛一场,不能轮空,按一下要求为比赛安排日程,

(1)每位选手必须与其他n-1格选手格赛一场;

(2)每个选手每天只能赛一场;

(3)循环赛一共进行n-1天;

#include

int a[50][50];

void table (int x,int k)

//此函数为从x号球员起的共2的k次方名球员的安排日程表

{

int i,j,y=1;

if(k==1)//只有两名球员

{

a[x][0]=x;

a[x][1]=x+1;

a[x+1][0]=x+1;

a[x+1][1]=x;

}

else

{

for(i=1;i<=k-1;i++)

{y=y*2;}

table(x,k-1);

table(x+y,k-1);

for(i=x;i

{

for(j=y;j<2*y;j++)

a[i][j]=a[i+y][j-y];

}

for(i=x+y;i

{

for(j=y;j<2*y;j++)

a[i][j]=a[i-y][j-y];

}

}

}

void main()

{

int i,j,k;

int n=1;

cout<<"请输入k值"<

cin>>k;

for(i=1;i<=k;i++)

{n=n*2;}

cout<<"参赛人数"<<" "<

cout<<"*****循环赛日程表****"<

cout<

cout<<"日期:";

for( i=1;i

cout<<" "<

cout<

for(i=1;i

{

cout<

for(j=1;j

cout<<" "<

}

cout<

}

执行结果如下:

相关文档
最新文档