蓝桥杯历届试题打印十字图解题报告---字符串打印

版权声明:转载请注明出处:https://blog.csdn.net/qq1013459920 https://blog.csdn.net/qq1013459920/article/details/88055481

                                          历届试题 打印十字图  

分析如下:

AC Code:

#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <iostream>
using namespace std;
typedef long long ll;
#define lowbit(x) x & -x;
const static int MAX_N = 1e6 + 5;
int main() {
	int n;
	while (scanf("%d", &n) != EOF) {
		int len = 5 + 4 * n;	//宽、高
		printf("..");
		for (int i = 3; i <= len - 2; i++) {
			putchar('$');
		}
		printf("..\n");
		printf("..$");
		for (int i = 4; i <= len - 3; i++) {
			putchar('.');
		}
		printf("$..\n");
		for (int k = 0; k < n; k++) {
			for (int sign = 0; sign < k; sign++) {
				printf("$.");
			}
			printf("$$$.");
			for (int j = 0; j < len - 8 - 4 * k; j++) {	//中间补$
				putchar('$');
			}
			printf(".$$$");
			for (int sign = 0; sign < k; sign++) {
				printf(".$");
			}
			putchar('\n');
			for (int sign = 0; sign < k; sign++) {
				printf("$.");
			}
			printf("$...$");
			if (k == n - 1) {
				printf("...$");
			}
			else {
				for (int j = 0; j < len - 10 - 4 * k; j++) {//中间补.
					putchar('.');
				}
				printf("$...$");
			}
			for (int sign = 0; sign < k; sign++) {
				printf(".$");
			}
			putchar('\n');
		}
		for (int k = 1; k <= n; k++) {
			printf("$.");
		}
		printf("$$$$$");
		for (int k = 1; k <= n; k++) {
			printf(".$");
		}
		putchar('\n');
		for (int k = n - 1; k >= 0; k--) {	//对称图案
			for (int sign = 0; sign < k; sign++) {
				printf("$.");
			}
			printf("$...$");
			if (k == n - 1) {//靠近中间行的特殊处理
				printf("...$");
			}
			else {
				for (int j = 0; j < len - 10 - 4 * k; j++) {
					putchar('.');
				}
				printf("$...$");
			}
			for (int sign = 0; sign < k; sign++) {
				printf(".$");
			}
			putchar('\n');
			for (int sign = 0; sign < k; sign++) {
				printf("$.");
			}
			printf("$$$.");
			for (int j = 0; j < len - 8 - 4 * k; j++) {
				putchar('$');
			}
			printf(".$$$");
			for (int sign = 0; sign < k; sign++) {
				printf(".$");
			}
			putchar('\n');
		}
		printf("..$");
		for (int i = 4; i <= len - 3; i++) {
			putchar('.');
		}
		printf("$..\n");
		printf("..");
		for (int i = 3; i <= len - 2; i++) {
			putchar('$');
		}
		printf("..\n");

	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq1013459920/article/details/88055481