標題:打印圖形
如下的程序會在控制檯繪製分形圖(就是整體與局部自相似的圖形)。
當n=1,2,3的時候,輸出如下:
請仔細分析程序,並填寫劃線部分缺少的代碼。
n=1時:
o
ooo
o
n=2時:
o
ooo
o
o o o
ooooooooo
o o o
o
ooo
o
n=3時:
o
ooo
o
o o o
ooooooooo
o o o
o
ooo
o
o o o
ooo ooo ooo
o o o
o o o o o o o o o
ooooooooooooooooooooooooooo
o o o o o o o o o
o o o
ooo ooo ooo
o o o
o
ooo
o
o o o
ooooooooo
o o o
o
ooo
o
源程序:
注意:只提交劃線部分缺少的代碼,不要抄寫任何已經存在的代碼或符號。
package 第八次模擬;
public class Demo5打印圖形 {
static void show(byte[][] buf){
for(int i=0; i<buf.length; i++){
for(int j=0; j<buf[i].length; j++){
System.out.print(buf[i][j]==0? ' ' : 'o');
}
System.out.println();
}
}
static void draw(byte[][] buf, int x, int y, int size){
if(size==1){
buf[y][x] = 1;
return;
}
int n = size/3; // 填空
draw(buf, x, y, n);
draw(buf, x-n, y ,n);
draw(buf, x+n, y ,n);
draw(buf, x, y-n ,n);
draw(buf, x, y+n ,n);
}
public static void main(String[] args){
final int N = 3;
int t = 1;
for(int i=0; i<N; i++) t *= 3;
byte[][] buf = new byte[t][t];
draw(buf, t/2, t/2, t);
show(buf);
}
}