Floyd's triangle   lists the natural numbers in a right triangle aligned to the left where

 the first row is   1     (unity)
 successive rows start towards the left with the next number followed by successive naturals listing one more number than the line above.


The first few lines of a Floyd triangle looks like this:

 1
 2  3
 4  5  6
 7  8  9 10
11 12 13 14 15



Task

 Write a program to generate and display here the first   n   lines of a Floyd triangle. 
(Use   n=5   and   n=14   rows).
 Ensure that when displayed in a mono-space font, the numbers line up in vertical columns as shown and that only one space separates numbers of the last row.


def floydstriangle( n:Int ) = { 
  val s = (1 to n)
  val t = s map {i => (s.take(i-1).sum) + 1}
 
  (s zip t) foreach { n => 
    var m = n._2; 
 
    for( i <- 0 until n._1 ) {
      val w = (t.last + i).toString.length + 1  // Column width from last row
      print("           " + m takeRight w )
      m+=1
    }
 
    print("\n")
  }
}
 
// Test
floydstriangle(5)
floydstriangle(14)