• [蓝桥杯][历届试题]打印十字图


    [蓝桥杯][历届试题]打印十字图

    时间限制: 1Sec 内存限制: 128MB 提交: 49 解决: 31

    题目描述
    历届试题  打印十字图  
    时间限制:1.0s     内存限制:256.0MB 
         
    问题描述 
    小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: 
    ..$$$$$$$$$$$$$..
    ..$...........$..
    $$$.$$$$$$$$$.$$$
    $...$.......$...$
    $.$$$.$$$$$.$$$.$
    $.$...$...$...$.$
    $.$.$$$.$.$$$.$.$
    $.$.$...$...$.$.$
    $.$.$.$$$$$.$.$.$
    $.$.$...$...$.$.$
    $.$.$$$.$.$$$.$.$
    $.$...$...$...$.$
    $.$$$.$$$$$.$$$.$
    $...$.......$...$
    $$$.$$$$$$$$$.$$$
    ..$...........$..
    ..$$$$$$$$$$$$$..

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

    提示 
    请仔细观察样例,尤其要注意句点的数量和输出位置。  

    输入
    一个正整数  n  (n< 30)  表示要求打印图形的层数。  
    输出
    对应包围层数的该标志。
    样例输入
    3  
    样例输出
    ..$$$$$$$$$$$$$..
    ..$...........$..
    $$$.$$$$$$$$$.$$$
    $...$.......$...$
    $.$$$.$$$$$.$$$.$
    $.$...$...$...$.$
    $.$.$$$.$.$$$.$.$
    $.$.$...$...$.$.$
    $.$.$.$$$$$.$.$.$
    $.$.$...$...$.$.$
    $.$.$$$.$.$$$.$.$
    $.$...$...$...$.$
    $.$$$.$$$$$.$$$.$
    $...$.......$...$
    $$$.$$$$$$$$$.$$$
    ..$...........$..
    ..$$$$$$$$$$$$$.. 
    /*
    ..$$$$$$$$$$$$$..
    ..$...........$..
    $$$.$$$$$$$$$.$$$
    $...$.......$...$
    $.$$$.$$$$$.$$$.$
    $.$...$...$...$.$
    $.$.$$$.$.$$$.$.$
    $.$.$...$...$.$.$
    $.$.$.$$$$$.$.$.$
    $.$.$...$...$.$.$
    $.$.$$$.$.$$$.$.$
    $.$...$...$...$.$
    $.$$$.$$$$$.$$$.$
    $...$.......$...$
    $$$.$$$$$$$$$.$$$
    ..$...........$..
    ..$$$$$$$$$$$$$.. 
    */
    #include<stdio.h>
    char a[150][150] ;
    void DFS(int x,int y,int cur);
    void PRINT(int n);
    int main(void)
    {
        int n,length;
        scanf("%d",&n);
        length=4*n+5;
        for(int i=1;i<=length;i++)
            for(int j=1;j<=length;j++)
                a[i][j]='.';
        DFS(1,1,n);
        PRINT(n);
    }
    void DFS(int x,int y,int cur)
    {
        if(cur < 0) return ;
        int length = 4*cur+5;
        for(int j=y+2;j<y+2+length-4;j++) a[x][j]=a[x+length-1][j]='$';
        
        a[x+1][y+2]='$';  a[x+1][y+length-3]='$'; a[x+length-2][y+2]='$'; a[x+length-2][y+length-3]='$';
        a[x+2][y+2]='$';  a[x+2][y+length-3]='$'; a[x+length-3][y+2]='$'; a[x+length-3][y+length-3]='$';
        a[x+2][y+1]='$';  a[x+2][y+length-2]='$'; a[x+length-3][y+1]='$'; a[x+length-3][y+length-2]='$';
    
        for(int i=x+2;i<x+2+length-4;i++) a[i][y]=a[i][y+length-1]='$';
        DFS(x+2,y+2,cur-1);    
    }
    void PRINT(int n)
    {
        int length = 4*n+5;
        for(int i=1;i<=length;i++) a[i][length+1]='';
        for(int i=1;i<=length;i++) printf("%s
    ",a[i]+1);    
    }
  • 相关阅读:
    python学习笔记(十五)-- flask接口开发
    python学习笔记(十四)-- requests接口调用
    python学习笔记(十三)-- 日志、发送邮件、redis数据库
    python学习笔记(十二)-- if __name__ == '__main__'
    python学习笔记(十一)-- md5加密
    python之操作excel:xlrd、xlwt、xlutiles、枚举函数enumerate()
    python:加密模块
    模块操作
    python基础:函数传参、全局变量、局部变量、内置函数、匿名函数、递归、os模块、time模块、解包
    【2019.6.2】python:json操作、函数、集合、random()、列表生成式、三元表达式
  • 原文地址:https://www.cnblogs.com/zuimeiyujianni/p/8677905.html
Copyright © 2020-2023  润新知