#P1941. The Sierpinski Fractal

The Sierpinski Fractal

题目描述:

考虑一个正三角形区域,将其分成四个高度为原半的等边三角形,然后移除中间的那个三角形。对剩下的三个三角形递归地应用相同的操作。如果我们无限次重复这个过程,最终得到的图形面积为零。这种通过此方式演化的分形被称为谢尔宾斯基三角形。尽管它的拓扑维数是 22,但其豪斯多夫 - 贝西科维奇维数为 log(3)/log(2)1.58log(3)/log(2)≈1.58 (一个分数值,这就是它被称为分形的原因)。顺便一提,挪威海岸线的豪斯多夫 - 贝西科维奇维数约为 1.521.52,而其拓扑维数为 11。 对于本题,你需要使用 ASCII 字符绘制给定递归深度的谢尔宾斯基三角形。由于绘图分辨率固定,你需要适当放大图形。最小的三角形(即不再进一步分割的三角形)需用以下符号绘制:两个斜杠 / 、两个反斜杠 \ 和两个下划线 _ ,形如:

 /\
/__\

要了解如何绘制更大的三角形,请查看示例输出。

输入:

输入包含多个测试用例,每个测试用例由一个整数 nn 指定。输入以 n=0n=0 终止,否则 1n101≤n≤10 表示递归深度。

输出:

对于每个测试用例,绘制一个边长为 22nn 次方个字符的谢尔宾斯基三角形轮廓。输出需左对齐,即最左下角的斜杠/应打印在第一列。输出中不得包含任何末尾空格。每个测试用例后打印一个空行。

输入数据1

3
2
1
0

输出数据1

       /\
      /__\
     /\  /\
    /__\/__\
   /\      /\
  /__\    /__\
 /\  /\  /\  /\
/__\/__\/__\/__\

   /\
  /__\
 /\  /\
/__\/__\

 /\
/__\

提示:

递归深度为 7 的谢尔宾斯基三角形

来源:

乌尔姆当地 2002 年