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


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

    时间限制: 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);    
    }
  • 相关阅读:
    LeetCode Path Sum II
    LeetCode Longest Palindromic Substring
    LeetCode Populating Next Right Pointers in Each Node II
    LeetCode Best Time to Buy and Sell Stock III
    LeetCode Binary Tree Maximum Path Sum
    LeetCode Find Peak Element
    LeetCode Maximum Product Subarray
    LeetCode Intersection of Two Linked Lists
    一天一个设计模式(1)——工厂模式
    PHP迭代器 Iterator
  • 原文地址:https://www.cnblogs.com/zuimeiyujianni/p/8677905.html
Copyright © 2020-2023  润新知