2013第四届蓝桥杯C/C++ C组省赛题解 八题

来源:互联网 发布:无尽的传说2 mac 破解 编辑:程序博客网 时间:2024/06/07 05:53

本题是蓝桥杯往届真题。

小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:

​..$$$$$$$$$$$$$....$...........$..$$$.$$$$$$$$$.$$$$...$.......$...$$.$$$.$$$$$.$$$.$$.$...$...$...$.$$.$.$$$.$.$$$.$.$$.$.$...$...$.$.$$.$.$.$$$$$.$.$.$$.$.$...$...$.$.$$.$.$$$.$.$$$.$.$$.$...$...$...$.$$.$$$.$$$$$.$$$.$$...$.......$...$$$$.$$$$$$$$$.$$$..$...........$....$$$$$$$$$$$$$..

对方同时也需要在电脑 Dos 窗口中以字符的形式输出该标志,并能任意控制层数。

上面是对应输出 33 层嵌套的时候。

11 层嵌套如下:

..$$$$$....$...$..$$$.$.$$$$...$...$$.$$$$$.$$...$...$$$$.$.$$$..$...$....$$$$$..

输入格式

输入一个整数 n(0 \leq n \leq 30)n(0n30),表示图形嵌套的层数。

输出格式

对应层数的该标志。

样例输入1

1

样例输出1

..$$$$$....$...$..$$$.$.$$$$...$...$$.$$$$$.$$...$...$$$$.$.$$$..$...$....$$$$$..

样例输入2

4

样例输出2

..$$$$$$$$$$$$$$$$$....$...............$..$$$.$$$$$$$$$$$$$.$$$$...$...........$...$$.$$$.$$$$$$$$$.$$$.$$.$...$.......$...$.$$.$.$$$.$$$$$.$$$.$.$$.$.$...$...$...$.$.$$.$.$.$$$.$.$$$.$.$.$$.$.$.$...$...$.$.$.$$.$.$.$.$$$$$.$.$.$.$$.$.$.$...$...$.$.$.$$.$.$.$$$.$.$$$.$.$.$$.$.$...$...$...$.$.$$.$.$$$.$$$$$.$$$.$.$$.$...$.......$...$.$$.$$$.$$$$$$$$$.$$$.$$...$...........$...$$$$.$$$$$$$$$$$$$.$$$..$...............$....$$$$$$$$$$$$$$$$$..



模拟就可以

#include <stdio.h>int main(){    int n;    scanf("%d",&n);    int a[200][200] = {0};    int x = (9 + 4 * (n - 1)) / 2 + 1;    int y = x;    for(int i = 0;i <= n;i ++){        int x1 = x - i * 2,y1 = y - i * 2;        a[x1][y1] = 1;a[x1][y1 - 1] = 1;a[x1][y1 - 2] = 1;        a[x1 - 1][y1] = 1;a[x1 - 2][y1] = 1;        int x2 = x - i * 2,y2 = y + i * 2;        a[x2][y2] = 1;a[x2][y2 + 1] = 1;a[x2][y2 + 2] = 1;        a[x2 - 1][y2] = 1;a[x2 - 2][y2] = 1;        int x3 = x + i * 2,y3 = y - i * 2;        a[x3][y3] = 1;a[x3][y3 - 1] = 1;a[x3][y3 - 2] = 1;        a[x3 + 1][y3] = 1;a[x3 + 2][y3] = 1;        int x4 = x + i * 2,y4 = y + i * 2;        a[x4][y4] = 1;a[x4][y4 + 1] = 1;a[x4][y4 + 2] = 1;        a[x4 + 1][y4] = 1;a[x4 + 2][y4] = 1;    }//做三角    for(int i = 0;i < n;i ++){        int x1 = x - 4 - i * 2,y1 = y - (i + 1) * 2;        for(int j = y1;(j - y1) < (5 + i * 4);j ++){            a[x1][j] = 1;        }        int x2 = x - (i + 1) * 2,y2 = y + 4 + i * 2;        for(int j = x2;j - x2 < 5 + i * 4;j ++){            a[j][y2] = 1;        }        int x3 = x + 4 + i * 2,y3 = y - (i + 1) * 2;        for(int j = y3;j - y3 < 5 + i * 4;j ++){            a[x3][j] = 1;        }        int x4 = x - (i + 1) * 2,y4 = y - 4 - i * 2;        for(int j = x4;j - x4 < 5 + i * 4;j ++){            a[j][y4] = 1;        }    }//做横竖    for(int i = 1;i <= 9 + (n-1)*4;i ++){        for(int j = 1;j <= 9 + (n-1)*4;j ++){            if(a[i][j] == 0)            printf(".");            if(a[i][j] == 1)            printf("$");        }    printf("\n");    }    return 0;}



0 0
原创粉丝点击