蓝桥杯历届试题 打印十字图
2017-01-20 01:15
323 查看
蓝桥杯历届试题 打印十字图
第一次写博客,主要是想为明年蓝桥杯做准备,而且又怕自己做过的题忘了。。。新手上路,肯定有很多错误和弯路,欢迎各位大神批评指正。
原题:
问题描述
小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:
对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。
输入格式
输出格式
样例输入1
样例输出1
样例输入2
样例输出2
提示
请仔细观察样例,尤其要注意句点的数量和输出位置。
思路:
第一次写博客,主要是想为明年蓝桥杯做准备,而且又怕自己做过的题忘了。。。新手上路,肯定有很多错误和弯路,欢迎各位大神批评指正。
原题:
问题描述
小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:
..$$$$$$$$$$$$$.. ..$...........$.. $$$.$$$$$$$$$.$$$ $...$.......$...$ $.$$$.$$$$$.$$$.$ $.$...$...$...$.$ $.$.$$$.$.$$$.$.$ $.$.$...$...$.$.$ $.$.$.$$$$$.$.$.$ $.$.$...$...$.$.$ $.$.$$$.$.$$$.$.$ $.$...$...$...$.$ $.$$$.$$$$$.$$$.$ $...$.......$...$ $$$.$$$$$$$$$.$$$ ..$...........$.. ..$$$$$$$$$$$$$..
对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。
输入格式
一个正整数 n (n<30) 表示要求打印图形的层数。
输出格式
对应包围层数的该标志。
样例输入1
1
样例输出1
..$$$$$.. ..$...$.. $$$.$.$$$ $...$...$ $.$$$$$.$ $...$...$ $$$.$.$$$ ..$...$.. ..$$$$$..
样例输入2
3
样例输出2
..$$$$$$$$$$$$$.. ..$...........$.. $$$.$$$$$$$$$.$$$ $...$.......$...$ $.$$$.$$$$$.$$$.$ $.$...$...$...$.$ $.$.$$$.$.$$$.$.$ $.$.$...$...$.$.$ $.$.$.$$$$$.$.$.$ $.$.$...$...$.$.$ $.$.$$$.$.$$$.$.$ $.$...$...$...$.$ $.$$$.$$$$$.$$$.$ $...$.......$...$ $$$.$$$$$$$$$.$$$ ..$...........$.. ..$$$$$$$$$$$$$..
提示
请仔细观察样例,尤其要注意句点的数量和输出位置。
思路:
额,进行观察即可发现这是一个中心对称的图形,
如图,通过这四个箭头即可将原图分成八份,其中每一份如下:
分析一下即可得出规律: 1:前两行前两列为'.'; 2:奇数行后三个为'$'; 3:奇数列除了倒数第二个其余为'$'; 4:除了以上的其余是'.',其他七个部分根据这一部分对称即可得出。 知道了规律,代码就不难写出了:
#include <iostream> #include <stdio.h> using namespace std; //中心对称图形 int dfs(int i,int j,int x) { //对称变换 if(i > 2 * x + 3) i = 4 * x + 6 - i; if(j > 2 * x + 3) j = 4 * x + 6 - j; if(j > i) { int t = j; j = i; i = t; } //前两排前两个为. if(i <= 2&&j <= 2) return 0; //后三个为连续'$' if(i % 2 == 1 && j >= i - 2) return 1; //奇数列 if(j % 2 == 1 && j != i - 1) return 1; return 0; } int main() { int x; scanf("%d",&x); for(int i = 1;i <= x * 4 + 5;i++) { for(int j = 1;j <= x * 4 + 5;j++) { if(dfs(i,j,x)) printf("$"); else printf("."); } printf("\n"); } return 0; }
相关文章推荐
- 【蓝桥杯】历届试题 打印十字图
- 蓝桥杯历届试题-打印十字图
- 蓝桥杯 历届试题 打印十字图(打印)
- 打印十字图-蓝桥杯历届试题
- 简单搜索 打印十字图 蓝桥杯历届试题
- 蓝桥杯 历届试题 打印十字图
- 蓝桥杯 历届试题 打印十字-----------------------C语言——菜鸟级
- 蓝桥杯之 历届试题 打印十字图
- 蓝桥杯-历届试题-打印十字图
- 蓝桥杯-历届试题-打印十字图
- 蓝桥杯 历届试题 打印十字图 java详解
- 蓝桥杯 历届试题 打印十字图
- 历届试题 打印十字图 (蓝桥杯)
- 蓝桥杯 历届试题 打印十字图
- 蓝桥杯 历届试题 打印十字图(模拟水题,图形输出)
- 历届试题 打印十字图
- 蓝桥杯 历届试题 打印大X
- 历届试题 打印十字图
- 历届试题 打印十字图
- 蓝桥杯 历届试题 打印图形