JAVA蓝桥杯打印图形当n_第九届蓝桥杯Java A——打印图形

如下的程序会在控制台绘制分形图(就是整体与局部自相似的图形)

当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

源程序:public class Main {

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

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值