Java實現藍橋杯打印圖形

標題:打印圖形

如下的程序會在控制檯繪製分形圖(就是整體與局部自相似的圖形)。

當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);
	}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章