分形通常被定义为“一个粗糙或零碎的几何形状,可以分成数个部分,每个部分都是(至少近似是)整体缩小后的形状”,即具有自相似的形状。
某种分形定义如下:
度为$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 ochar *gets(char *str) 函数在执行过程中不会对边界进行检查,极其容易受到缓冲区溢出的攻击。因此,在 C++11 中该函数已经被移除。
对于使用 C++ 完成本题并希望使用上述函数的同学,请使用以下两个更为安全的函数作为替代:
char *gets_s(char *str, rsize_t n);
char *fgets( char *restrict str, int count, FILE *restrict stream);
在 Windows 下,默认的换行符是 CRLF,而在 Linux(评测机)中,默认换行符为 LF