循环赛日程表设计源代码

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

#include

#include

const int N=100;

int a[N][N];

void Copy(int i1,int j1,int i2,int j2,int n){

for(int k1=0;k1

for(int k2=0;k2

a[i1+k1][j1+k2]=a[i2+k1][j2+k2];

}//for

}//for

}///:~

void fun(int n,int k,int row,int col){

int m1=1;

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

n/=2;

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

for(int i=m1+1;i<=2*m1;i++)

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

a[i+row][j+(t-1)*m1*2+col]=a[i-m1+row][j+(t-1)*m1*2-m1+col]; a[i+row][j+(t-1)*m1*2-m1+col]=a[i-m1+row][j+(t-1)*m1*2+col]; }//for

m1*=2;

}//for

}///:~

void Table(int m,int k){

//processing 2ek:

int n=1;int j;

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

for(i=1;i<=n*m;i++) a[1][i]=i;

for(int l=0;l

fun(n,k,0,l*n);

//Processing m:

//cout<<"m="<

for(j=1;j

Copy(j*n+1,(m-1)*n+1,(j-1)*n+1,1,n);

for(i=0;i

Copy(j*n+1,i*n+1,(j-1)*n+1,(i+1)*n+1,n);

}//for

}///:~

void Print(int n){

int n1;

if(!(n%2)) n1=n;

else n1=n+1;

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

for(int j=1;j<=n1;j++)

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

cout<

}//for

}///:~

void main(){

int n;int n0;

cout<<"Input n:";

cin>>n0;

cout<

int n1;int k;

if(n0%2) n=n0+1;

else n=n0;

for(int m=1;m<=n/2;m=m+2){

k=0;

if(!(n%m)) n1=n/m;

else continue;

while(n1>1&&!(n1%2)){

n1/=2;

k++;

}//while

if(n1==1) break;

}//for

//cout<<"m="<

Table(m,k);

if(n0%2){

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

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

if(a[i][j]==n)

a[i][j]=0;

}//if

Print(n0);

}///:~

相关文档
最新文档