DEV Community

Discussion on: Daily Challenge #225 - Square'n'Sum

Collapse
 
mellen profile image
Matt Ellen

Trying to find a more... unconventional javascript answer :D

function squareSum(numbers)
{
  if(numbers.length > 0)
  {
    let n = numbers.pop();
    return square(n) + squareSum(numbers);
  }

  return 0;
}

let squares = [0, 1];
function square(n)
{
  let absn = Math.abs(n);
  if(typeof(squares[n]) !== 'undefined')
  {
    return squares[n];
  }

  let sqr = square(absn-1) + (absn-1) + absn;

  squares[n] = sqr;

  return sqr;
}