如代码
package shiyan1;
import java.util.*;
public class fenzhi{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入 k 的值(2^k个运动员)");
int k = scanner.nextInt();
scanner.close();
int n = 1;
for(int j=0;j<k;j++) {
n*=2;
}
int[][] array = new int[n][n];
table(array, n);
printTable(array, n);
}
private static void table(int[][] a, int n) {
if(n==0) {
a[0][0]=1;
return;
}
table(a,n/2); //分治
for(int i=0;i<n/2;i++)
{
for(int j=0;j<n/2;j++)
{
a[i+n/2][j]=a[i][j]+n/2;
a[i][j+n/2]=a[i][j]+n/2; //生成日程表,这里可以自己动手模拟一下,就是很神奇