习题 7:分形递归图形

题目:输入整数 n,打印由 x 字符构成的递归分形图形(类似谢尔宾斯基地毯)。

object RecurX {
  def main(args: Array[String]): Unit = {
    val n = readInt()
    var len = 1
    var a = Array.ofDim[Char](1000, 1000)
    a(0)(0) = 'x'
    for (i <- 2 to n) {
      for (j <- 0 to len - 1) {
        for (k <- 0 to len - 1) {
          a(j)(k + 2 * len) = a(j)(k)                 // 右上
          a(j + 2 * len)(k) = a(j)(k)                 // 左下
          a(j + len)(k + len) = a(j)(k)               // 中间
          a(j + 2 * len)(k + 2 * len) = a(j)(k)       // 右下
        }
      }
      len *= 3
    }
    for (j <- 0 to len - 1) {
      for (k <- 0 to len - 1) {
        print(a(j)(k) + " ")
      }
      println()
    }
  }
}