分形图2

时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 0 总提交人数: 0

题目背景

分形通常被定义为“一个粗糙或零碎的几何形状,可以分成数个部分,每个部分都是(至少近似是)整体缩小后的形状”,即具有自相似的形状。

某种分形定义如下:

度为$n=1$时:

o

度为$n=2$时:

 o
ooo
 o

度为$n=3$时:

    o
   ooo
    o
 o  o  o
ooooooooo
 o  o  o
    o
   ooo
    o

题目描述

给定字符o,度为2时的分形,输出其度为 $n(1 \le n \le 8)$ 时的分形。

输入

输入包含多组数据(不超过10组)。

第一行是数据组数 $m$,从第二行开始为具体的数据。每组数据第一行是度数 $n$ ,后面三行是度为 2 时的分形。

输出

对每组数据,输出度数$n$对应的分形,并在分形最后输出一个空行。

样例输入

2
3
 o
ooo
 o
3
o o
 o
o o

样例输出

    o
   ooo
    o
 o  o  o
ooooooooo
 o  o  o
    o
   ooo
    o

o o   o o
 o     o
o o   o o
   o o
    o
   o o
o o   o o
 o     o
o o   o o

Hint1

char *gets(char *str) 函数在执行过程中不会对边界进行检查,极其容易受到缓冲区溢出的攻击。因此,在 C++11 中该函数已经被移除。

对于使用 C++ 完成本题并希望使用上述函数的同学,请使用以下两个更为安全的函数作为替代:

char *gets_s(char *str, rsize_t n);

char *fgets( char *restrict str, int count, FILE *restrict stream);

Hint2

在 Windows 下,默认的换行符是 CRLF,而在 Linux(评测机)中,默认换行符为 LF

相关推荐