#91 Find X 


We have a function that takes in an integer n, and returns a number x.


Lets call this function findX(n)/find_x(n) (depending on your language):


function findX(n) {

  let x = 0;

  for (let i = 0; i < n; i++) {

    for (let j = 0; j < 2*n; j++)

      x += i + j;

  }

  return x;

}

The functions loops throught the number n and at every iteration, performs a nested loop on 2*n, at each iteration of this nested loop it increments x with the (nested loop index + parents loop index).


This works well when the numbers are reasonably small.


findX(2) //=> 16

findX(3) //=> 63

findX(5) //=> 325

But may be slow for numbers > 103


So your task is to optimize the function findX/find_x, so it works well for large numbers.


Input Range

1 <= n <= 106 (105 in JS)


Note: This problem is more about logical reasoning than it is about finding a mathematicial formula, infact there are no complex math formula involved




'매일매일개발 > Codewars' 카테고리의 다른 글

codewars #93 Number Format (6kyu)  (0) 2018.08.08
codewars #92 Bit calculator (5kyu)  (0) 2018.08.07
codewars #90 Cure Cancer (6kyu)  (0) 2018.08.01
codewars #89 Mexican Wave (6kyu)  (0) 2018.07.31
codewars #88 Which are in? (6kyu)  (0) 2018.07.30

+ Recent posts