poj2083

/* * poj2083.cpp * * Created on: 2010-8-10 * Author: friendy */ //好神奇的递归阿……号精减 #include #include #include #include #include using namespace std; char map[1000][1000]; void graph(int x, int y, int n) { int l; if (n == 1) map[x][y] = 'X'; else { l = (int) pow(3.0, (double) (n - 2)); graph(x, y, n - 1); graph(x, y + 2 * l, n - 1); graph(x + 2 * l, y, n - 1); graph(x + l, y + l, n - 1); graph(x + 2 * l, y + 2 * l, n - 1); } } int main(){ int i,j,n,r,max; while(1){ scanf("%d",&n); if(n==-1) break; r = (int) pow(3.0, (double) (n - 1)); graph(0, 0, n); for (i = 0; i < r; i++) { max = 0; for (j = 0; j < r; j++) if (map[i][j] == 'X') max = j; for (j = 0; j < max; j++) if (map[i][j] != 'X') map[i][j] = ' '; map[i][max + 1] = '/0'; } for (i = 0; i < r; i++) printf("%s/n", map[i]); printf("-/n"); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值