• 哈工大 囧 递归从外到里面 画


     http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2085

    A.囧
    Time Limit: 1000 MS Memory Limit: 65536 K
    Total Submit: 80 (40 users) Total Accepted: 34 (34 users) Special Judge: No
    Description

    DS最近很囧,总是不能把妹子哄开心。所以,邪恶的他也想让你们囧一囧。


    他给你一个数字 n 让你输出囧字的迭代(详见样例)。

    Input

    第一行一个整数,代表数据的组数。

    每组数据一个整数 n1≤n≤7

    Output

    每组数据输出一个囧字的图形.

    Sample Input
    2
    1
    2
    
    Sample Output
    +------+
    |      |
    | /   |
    |      |
    | +--+ |
    | |  | |
    | |  | |
    +-+--+-+
    +--------------+
    |              |
    |     /       |
    |    /        |
    |   /         |
    |  /          |
    | /           |
    |              |
    |   +------+   |
    |   |      |   |
    |   | /   |   |
    |   |      |   |
    |   | +--+ |   |
    |   | |  | |   |
    |   | |  | |   |
    +---+-+--+-+---+
    
    Hint

    再友情给个n = 3 的样例,请注意囧字的迭代方式。

    +------------------------------+

    |                              |

    |             /               |

    |            /                |

    |           /                 |

    |          /                  |

    |         /                   |

    |        /                    |

    |       /                     |

    |      /                      |

    |     /                       |

    |    /                        |

    |   /                         |

    |  /                          |

    | /                          |

    |                              |

    |       +--------------+       |

    |       |              |       |

    |       |     /       |       |

    |       |    /        |       |

    |       |   /         |       |

    |       |  /          |       |

    |       | /          |       |

    |       |              |       |

    |       |   +------+   |       |

    |       |   |      |   |       |

    |       |   | /  |   |       |

    |       |   |      |   |       |

    |       |   | +--+ |   |       |

    |       |   | |  | |   |       |

    |       |   | |  | |   |       |

    +-------+---+-+--+-+---+-------+

     1 #include<iostream>
     2 #include<stdio.h>
     3 using namespace std;
     4 char d[600][600];
     5 void dayin(int x,int r,int l)
     6 {
     7     if(x<0)
     8         return ;
     9     int n;
    10     n=1<<(x+2);
    11     for(int i=0; i<n; i++)   //上面一横
    12         d[r][l+i]='-';
    13         for(int i=0; i<n; i++)
    14         {
    15             d[r+i][l]='|';
    16             d[r+i][l+n-1]='|';
    17         }
    18     d[r][l]='+';
    19     d[r][l+n-1]='+';
    20     for(int i=0;i<n;i++)     //下面一横
    21         d[r+n-1][l+i]='-';
    22     d[r+n-1][l]=d[r+n-1][l+n-1]='+';
    23     int xie;
    24     xie=(1<<(x+1))-3;
    25     for(int i=0; i<xie;i++)
    26     {
    27         d[r+xie+1 -i][l+1+1+i]='/';   //撇 和 捺
    28         d[r+xie+1 -i][l+n-1-1-1-i]='\';
    29     }
    30     dayin(x-1,r+n/2,l+n/4);
    31 }
    32 int main()
    33 {
    34     int n,t;
    35     scanf("%d",&t);
    36     while(t--)
    37     {
    38         scanf("%d",&n);
    39         int temp;
    40         temp=1<<(n+2);
    41         for(int i=0; i<temp; i++)
    42             for(int j=0; j<temp; j++)
    43                 d[i][j]=' ';
    44         dayin(n,0,0);
    45         for(int i=0; i<temp; i++)
    46         {
    47             for(int j=0; j<temp; j++)
    48                 printf("%c",d[i][j]);
    49             printf("
    ");
    50         }
    51     }
    52     return 0;
    53 }

    #include<iostream>#include<stdio.h>using namespace std;char d[600][600];void dayin(int x,int r,int l){    if(x<0)        return ;    int n;    n=1<<(x+2);    for(int i=0; i<n; i++)   //上面一横        d[r][l+i]='-';        for(int i=0; i<n; i++)        {            d[r+i][l]='|';            d[r+i][l+n-1]='|';        }    d[r][l]='+';    d[r][l+n-1]='+';    for(int i=0;i<n;i++)     //下面一横        d[r+n-1][l+i]='-';    d[r+n-1][l]=d[r+n-1][l+n-1]='+';    int xie;    xie=(1<<(x+1))-3;    for(int i=0; i<xie;i++)    {        d[r+xie+1 -i][l+1+1+i]='/';   //撇 和 捺        d[r+xie+1 -i][l+n-1-1-1-i]='\';    }    dayin(x-1,r+n/2,l+n/4);}int main(){    int n,t;    scanf("%d",&t);    while(t--)    {        scanf("%d",&n);        int temp;        temp=1<<(n+2);        for(int i=0; i<temp; i++)            for(int j=0; j<temp; j++)                d[i][j]=' ';        dayin(n,0,0);        for(int i=0; i<temp; i++)        {            for(int j=0; j<temp; j++)                printf("%c",d[i][j]);            printf(" ");        }    }    return 0;}

  • 相关阅读:
    简易四则运算
    对GitHub的认识
    对‘前辈’们的博文有感
    javascript中的JSON序列化与反序列化
    初步体验javascript try catch机制
    JQuery拾遗
    直面Javascript面试题算法思路
    ECMAScript5下Array的方法
    浅谈javascript中的数据类型和引用类型
    ECMAScript 5.1中对属性的操作
  • 原文地址:https://www.cnblogs.com/assult/p/3633863.html
Copyright © 2020-2023  润新知