zoukankan      html  css  js  c++  java
  • [蓝桥杯][历届试题]打印十字图

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

    时间限制: 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);    
    }
  • 相关阅读:
    工作中常用,实用工具推荐!
    “如何管理好你的时间”
    经典SQL语句大全(绝对的经典eweqweqwe)
    第三节 MongoDB下samus源码初探
    ASP.NET(C#)常用数据加密和解密方法汇总
    全自动时代:JavaScript自动压缩插件
    SQL Server 获取所有表和数据的批量操作
    千万级别数据表,单列索引和多列索引性能对比
    第二节 为什么用MongoDB及.NET开发入门
    vs2005手机开发环境的配置
  • 原文地址:https://www.cnblogs.com/zuimeiyujianni/p/8677905.html
Copyright © 2011-2022 走看看