《算法分析与设计及案例教程》P61
#include <iostream>
using namespace std;
int a[
1024][
1024];
void merger(
int n){
int m=n/
2;
for(
int i=
0;i<m;i++){
for(
int j=
0;j<m;j++){
a[i][j+m]=a[i][j]+m;
a[i+m][j]=a[i][j+m];
a[i+m][j+m]=a[i][j];
}
}
}
void arrangement(
int n){
if(n==
1){
a[
0][
0]=
1;
return;
}
arrangement(n/
2);
merger(n);
}
int main(){
int n;
cout<<
"请输入有多少人比赛"<<endl;
cin>>n;
arrangement(n);
for(
int i=
0;i<n;i++){
for(
int j=
0;j<n;j++){
cout<<a[i][j]<<
" ";
}
cout<<endl;
}
return 0;
}
转载请注明原文地址: https://ju.6miu.com/read-7152.html