分形通常被定义为“一个粗糙或零碎的几何形状,可以分成数个部分,每个部分都是(至少近似是)整体缩小后的形状”,即具有自相似的形状。
某种分形定义如下:
度为$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
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);
在 Windows 下,默认的换行符是 CRLF
,而在 Linux(评测机)中,默认换行符为 LF