循环赛日程表实验报告 下载本文

附:

#include

#include using namespace std;

void print(int n,int a[100][100]); void arrangement(int n,int N,int k,int a[100][100]);

int main() {

int k;

int a[100][100]; int n=1;

cout<<\请输入 k\ cin >> k;

for (int i=1;i<=k;i++) n *= 2;//n=2^k

cout<<\参赛人数\ int N=n;

arrangement(n, N, k, a); print(n,a); }

void arrangement(int n,int N,int k,int a[100][100])

{

for(int i=1;i<=N;i++) {

a[1][i] = i; }

int m =1;

for (int s=1;s<=k;s++) { N/=2; for(int t=1;t<=N;t++) { for(int i=m+1;i<=2*m;i++)

for(int 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 print(int n,int a[100][100]) {

cout<<\-\循环赛日程表\

cout<

for(int p=1;p

cout<

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

for(int j=2;j<=n;j++) cout<

} }

天津工程师范学院 13