本文主要是介绍Hrbust 囧(输出图像囧),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Description |
DS最近很囧,总是不能把妹子哄开心。所以,邪恶的他也想让你们囧一囧。
他给你一个数字 n让你输出囧字的迭代(详见样例)。 |
Input |
第一行一个整数,代表数据的组数。 每组数据一个整数 n(1≤n≤7) |
Output |
每组数据输出一个囧字的图形. |
Sample Input |
2 1 2 |
Sample Output |
+------+ | | | / \ | | | | +--+ | | | | | | | | | +-+--+-+ +--------------+ | | | / \ | | / \ | | / \ | | / \ | | / \ | | | | +------+ | | | | | | | / \ | | | | | | | | +--+ | | | | | | | | | | | | | | +---+-+--+-+---+ |
Hint |
再友情给个n = 3的样例,请注意囧字的迭代方式。+------------------------------+ | | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | | | +--------------+ | | | | | | | / \ | | | | / \ | | | | / \ | | | | / \ | | | | / \ | | | | | | | | +------+ | | | | | | | | | | | / \ | | | | | | | | | | | | +--+ | | | | | | | | | | | | | | | | | | | +-------+---+-+--+-+---+-------+
|
#include<stdio.h>
#define N (1<<8)*8
char c[8][N][N];
void init()
{int h=8;for(int k=1;k<8;k++){for(int i=1;i<=h;i++)for(int j=1;j<=h;j++)c[k][i][j]=' ';h*=2;}//----第一个囧-----for(int j=1;j<=4;j++)if(j==1) c[1][1][j]=c[1][1][8-j+1]='+';else c[1][1][j]=c[1][1][8-j+1]='-';for(int i=2;i<8;i++)c[1][i][1]=c[1][i][8]='|';c[1][3][3]='/';c[1][3][6]='\\';c[1][5][3]=c[1][5][6]='+';c[1][5][4]=c[1][5][5]='-';for(int i=6;i<8;i++)c[1][i][3]=c[1][i][6]='|';for(int j=1;j<=4;j++)if(j%2) c[1][8][j]=c[1][8][8-j+1]='+';else c[1][8][j]=c[1][8][8-j+1]='-';
}
void set()
{int h=8;for(int k=2;k<=7;k++)//第k个囧{h*=2;for(int j=1;j<=h/2;j++)//第一行if(j==1) c[k][1][j]=c[k][1][h-j+1]='+';else c[k][1][j]=c[k][1][h-j+1]='-';for(int i=2;i<h;i++)//第一列和最后一列(除第一行和最后一行)c[k][i][1]=c[k][i][h]='|';for(int t=1;h/2-t>2;t++)//那个八字{c[k][2+t][h/2-t]='/';c[k][2+t][h/2+1+t]='\\';}for(int i=h/2+1;i<=h;i++)//大囧中的多个小囧就是前一个囧的图形for(int j=(1<<k)+1;j<=h-(1<<k);j++)c[k][i][j]=c[k-1][i-h/2][j-(1<<k)];for(int j=1;j<=(1<<k);j++)//最后一行的最两边,中间的是前一个囧的最后一行if(j==1)c[k][h][j]=c[k][h][h-j+1]='+';else c[k][h][j]=c[k][h][h-j+1]='-';}
}
int main()
{init();set();int h,n;while(scanf("%d",&n)>0){h=1<<(n+2);for(int i=1;i<=h;i++){for(int j=1;j<=h;j++)printf("%c",c[n][i][j]);printf("\n");}}}
这篇关于Hrbust 囧(输出图像囧)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!