使用分治法设计程序时,一般可按以下步骤进行:
- 分解:将要求解的问题划分成若干规模较小的同类问题。
- 求解:当子问题划分得足够小时,用较简单的方法解决。
- 合并:按求解问题的要求,将子问题的解逐层合并,即可构成最终的解。
乒乓球比赛赛程安排
运行过程:
-
由初始化的第一行填充第二行。
-
第一部分填完,进行第二部分的填充。
-
最后是第三部分的填充。
import java.util.Scanner;
public class pingPang {
static int table[][]=new int[10][10];
public static void f(int x,int y,int num) {
if(num==1)
return;
num/=2;
f(x,y,num);
f(x+num,y,num);
for(int i=0;i<num;i++) {
for(int j=0;j<num;j++) {
table[x+i+num][y+j+num]=table[x+i][y+j];
table[x+i][y+j+num]=table[x+i+num][y+j];
}
}
}
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int n=input.nextInt();
for(int r=1;r<=n;r++) {
table[r][1]=r;
}
f(1,1,n);
for(int i=1;i<=n;i++) {
for(int j=1;j<=n;j++) {
System.out.print(table[i][j]+" ");
}
System.out.println();
}
}
}
网友评论