Triángulo de Floyd

Published by MyName in

El triángulo de Floyd es una matriz triangular rectángula de números naturales. Se define rellenando las filas del triángulo con números consecutivos, comenzando con un 1 en la esquina superior izquierda:

Triángulo de Floyd

Escribe una función que reciba un entero n y devuelva las filas del triángulo de Floyd como una lista de listas. Tu función debe devolver una de dos posibilidades:

  • Si se pasa un valor a n_row, devuelve las primeras n filas.
  • Si se pasa un valor a up_to, devuelve todas las filas hasta, e incluida, la fila que contiene n.

Se espera que se pase un argumento a uno de los parámetros, pero no a ambos.

Ejemplos

floyd(up_to = 5) ➞ [[1], [2, 3], [4, 5, 6]]
# The third row contains a 5.

floyd(n_row = 5) ➞[[1], [2, 3], [4, 5, 6], [7, 8, 9, 10], [11, 12, 13, 14, 15]]
# Returns the first five rows.

floyd(up_to = 10) ➞ [[1], [2, 3], [4, 5, 6], [7, 8, 9, 10]]

floyd(n_row = 1) ➞[[1]]

Notas

Pista: Puedes definir n_row a partir de up_to usando la secuencia de números triangulares. Es decir, n_row debe ser x en la ecuación (x*(x+1))/2 = up_to redondeada hacia arriba. Después, solo tienes que escribir una función para n_row.