代码 PE 求修改
查看原帖
代码 PE 求修改
109114
_l_l_楼主2021/10/29 15:30
#include <cstdio>
#define ch(x, y) \
u = u < px ? u : px; \
d = d > px ? d : px; \
l = l < py ? l : py; \
lmap[px] = lmap[px] > py ? lmap[px] : py;
using namespace std;
const int MAXN = 15;
const int MAXS = 500;
char chs[MAXS][MAXS];
int lmap[MAXS];
char opt[1 << MAXN];
int main() {
//	freopen("data.out.txt", "w", stdout);
	int n;
	while (scanf("%d", &n), n) {
		int u = 0x7fffffff, d = 0, l = 0x7fffffff;
		int px = 249, py = 249;
		opt[0] = 0;
		py++;
		chs[px][py] = '_';
		ch(px, py)
		py++;
		for (int i = 1; i <= n; i++) {
			for (int j = 1 << i - 1; j < 1 << i; j++) {
				opt[j] = (opt[(1 << i) - 1 - j] + 1) % 4;
				if (opt[j] == 0) {
					py++;
					chs[px][py] = '_';
					ch(px, py)
					py++;
				}
				if (opt[j] == 1) {
					chs[px][py] = '|';
					ch(px, py);
					px--;
				}
				if (opt[j] == 2) {
					py--;
					chs[px][py] = '_';
					ch(px, py);
					py--;
				}
				if (opt[j] == 3) {
					px++;
					chs[px][py] = '|';
					ch(px, py);
				}
			}
		}
		for (int i = u; i <= d; i++) {
			for (int j = l; j <= lmap[i]; j++) {
				putchar(chs[i][j] == 0 ? ' ' : chs[i][j]);
				chs[i][j] = 0;
			}
			puts("");
		}
		puts("^");
	}
	return 0;
}

上了 uDebug 和讨论区无果

2021/10/29 15:30
加载中...