Triangle Number

A triangle number is the number of dots that form a triangle. Find how many triangles exist from triangle number 1 to the first triangle with triangle number >= 500.

In the illustration below, triangle numbers are: 1, 3, 6, 10, and would continue with 15, 21, 28, 36, …

                            .
                  .        . .
          .      . .      . . .
    .    . .    . . .    . . . .
    1     3       6        10

First, determine the number of dots for each triangle i. That happens to be the sum of numbers between 1 and i, for a triangle i.
i = 1, 1=1
i = 2, 1+2=3
i = 3, 1+2+3=6
i = 4, 1+2+3+4=10

function getTriangleNumber(t) {
  return (t*(t+1))/2
}

function getTriangles(number) {
  let triangles = []

  for (let i = 1; true; i++) {
    let n = getTriangleNumber(i)
    triangles.push(n)

    if (n >= number) {
      return triangles.length
    }
  }

  return -1
}

Another approach is to keep a running sum of triangle numbers. A triangle number for triangle i is i + triangle number at i-1.

function getTriangles(number) {
  let triangles = []
  let n = 0

  for (let i = 1; true; i++) {
    let n = n + i
    triangles.push(n)

    if (n >= number) {
      return triangles.length
    }
  }

  return -1
}
Scroll to top