//分治算法
//球隊的賽程安排
public class Divide {
public void scheduleTable(int[][] table,int n){
if(n == 1){ //球隊數量
table[0][0] = 1;
}else{
//填充左上區域
int m = n / 2;
scheduleTable(table,m);
//填充右上區域
for(int i = 0;i < m;i++){
for(int j = m;j < n;j++){
table[i][j] = table[i][j - m] + m;
}
}
//填充左下區域
for(int i = m;i < n;i++){
for(int j = 0;j < m;j++){
table[i][j] = table[i - m][j] + m;
}
}
//填充右下區域
for(int i = m;i < n;i++){
for(int j = m;j < n;j++){
table[i][j] = table[i - m][j - m];
}
}
}
}
public static void main(String[] args){
Divide d = new Divide();
int[][] table = new int[8][8];
d.scheduleTable(table,8);
}
}