Как посчитать количество поддонов оптимально?
Проще всего банально переборомvar p72 = {count: 72};
var p84 = {count: 84};
var p90 = {count: 90};

var items = [p72, p84, p90];
var count = 1043;
var minVal = Infinity;
var solutions = [];
var val;

for (var i = 0, item = items[i]; i < items.length; item = items[++i]) item.max = Math.ceil(count / item.count);

for (p72.i = 0; p72.i <= p72.max; p72.i += 1)
  for (p84.i = 0; p84.i <= p84.max; p84.i += 1)
    for (p90.i = 0; p90.i <= p90.max; p90.i += 1) {
      val = p90.i * p90.count + p84.i * p84.count + p72.i * p72.count;
      if (val < count) continue;
      if (val < minVal) {
        solutions = [];
        solutions.count = val;
        minVal = val;
      }
      if (val === minVal) solutions.push([p72.i, p84.i, p90.i]);
    }

console.log(solutions); // 1044 9 вариатнов
У меня по математике было 3, но всё же попробую. Берите количество блоков и делите на самый большой поддон без остатка. 1043/90 = 11.
Остаток пытаемся засунуть в более мелкие поддоны 1043-990=53/72 ->1. 
Итого: 11 по 90 и 1 по 72.
Но это алгоритм без весов (стоимости поддонов). С удовольствием послушаю математиков.