Tapetes concêntricos

Published by Helen Yu in

Crie uma função que receba o parâmetro n e gere um tapete concêntrico de n x n (onde n é ímpar).

O centro de um tapete concêntrico é 0, e o tapete «se expande para fora», como mostrado nos exemplos abaixo.

Exemplos

generate_rug(1) ➞ [
  [0]
]

generate_rug(3) ➞ [
  [1, 1, 1],
  [1, 0, 1],
  [1, 1, 1]
]

generate_rug(5) ➞ [
  [2, 2, 2, 2, 2],
  [2, 1, 1, 1, 2],
  [2, 1, 0, 1, 2],
  [2, 1, 1, 1, 2],
  [2, 2, 2, 2, 2]
]

generate_rug(7) ➞ [
  [3, 3, 3, 3, 3, 3, 3],
  [3, 2, 2, 2, 2, 2, 3],
  [3, 2, 1, 1, 1, 2, 3],
  [3, 2, 1, 0, 1, 2, 3],
  [3, 2, 1, 1, 1, 2, 3],
  [3, 2, 2, 2, 2, 2, 3],
  [3, 3, 3, 3, 3, 3, 3]
]

Observações

  • n é um número inteiro positivo ímpar.
  • Sempre incremente em 1 a cada «camada» que você percorrer para fora.