Как найти сумму чисел массива, которых равна определенному числу?
Вот вариант на ES6, используется spread operator:const circle_1 = [7, 2, 3, 5, 16, 50, 25, 40],
      circle_2 = [2, 5, 10, 30, 25, 3, 10, 25],
      circle_3 = [25, 10, 2, 10, 5, 2, 10, 5],
      circle_4 = [7, 2, 3, 20, 3, 7, 2, 5],
      circle_5 = [2, 20, 1, 7, 25, 1, 25],
      circle_6 = [3];
      
function findSum(value, arrays, i = 0) {
  for (let j = 0; j < arrays[i].length; j++) {
    const el = arrays[i][j];
    
    if (i < arrays.length - 1) {
      const result = findSum(value - el, arrays, i + 1);
      
      if (result !== null) {
        return [el, ...result];
      }
    } else if (el === value) {
      return [el];
    }
  }
  return null;
}

console.log('result', findSum(136, [
  circle_1, 
  circle_2, 
  circle_3, 
  circle_4, 
  circle_5,
  circle_6
]));

// => result  [50, 30, 25, 3, 25, 3]
Демо: https://jsfiddle.net/0ho4g942/
Если по легче, то - const count = 136
А если без шуток, что-то типо того:function findCount (arrays, maxValue) {
  let count = 0
  let chunkPositions = [-1, 0]

  let mergedArray = []
  let resultArray = []

  arrays.forEach(array => {
    mergedArray = mergedArray.concat(array)
  })
  
  for (let i = 0; i < mergedArray.length; i++) {
    if (++chunkPositions[0] == arrays.length) {
      chunkPositions[0] = 0
      ++chunkPositions[1]
    }
    
    if (count >= maxValue) break
    else {
      const [aposition, iposition] = chunkPositions
      const value = arrays[aposition][iposition]
      
      if (!value || (count + value > maxValue)) continue

      count += value
      resultArray.push(value)
    }
  }

  return resultArray
}

findCount([
  [7, 2, 3, 5, 16, 50, 25, 40],
  [2, 5, 10, 30, 25, 3, 10, 25],
  [25, 10, 2, 10, 5, 2, 10, 5],
  [7, 2, 3, 20, 3, 7, 2, 5],
  [2, 20, 1, 7, 25, 1, 25],
  [3]
], 136)

// Output => [7, 2, 25, 7, 2, 3, 2, 5, 10, 2, 20, 3, 10, 2, 3, 1, 5, 10, 7, 5, 3, 2]
Функция работает без рекурсии