现在的位置: 首页 > 综合 > 正文

循环赛日程表

2013年10月27日 ⁄ 综合 ⁄ 共 628字 ⁄ 字号 评论关闭

循环赛日程表 (C++)

#include "iostream.h"
#include "math.h"
int array[100][100];

output( int k)
{  

cout<<"\n循环赛日程表为 "<<endl;

for(int z=1;z<=pow(2,k);z++)
{for(int m=1;m<=pow(2,k);m++)
       cout<<array[z]­­<<"\t";

cout<<endl;
}
}

void ttt(int k, int  array[100][100] )

int n=1;
for(int i=1;i<=k;i++)
  n*=2;
for(int p=1;p<=n;p++)
  array[1][p]=p;
int m=1;

for(int s=1;s<=k;s++)
{ n/=2;
   for(int t=1;t<=n;t++)
     for(int a=m+1;a<=2*m; a++)
        for(int b=m+1;b<=2*m;b++)
  {
          array[a][b+(t-1)*m*2]=array[a-m][b+(t-1)*m*2-m];
         array[a][ b+(t-1)*m*2-m]=array[a-m][b+(t-1)*m*2];

  }
     m*=2;
}

}

void main()
{int k;
cout<<"输入k的数值(比赛人数为 2^k)\n"<<endl;
cin>>k;

ttt(k,array);
output(k );
}

 

抱歉!评论已关闭.