Трудно было придумать краткое название для этого. Я уверен, что есть условия для того, чего я хочу достичь, и нет никаких сомнений в том, что есть общий алгоритм для достижения того, чего я добиваюсь - я просто еще не знаю о них.
Мне нужно разбить число на n частей, каждая из которых кратна 50. Число само по себе кратно 50. Вот пример:
Разделите 5000 на 3 и получите три числа, каждое из которых кратно 50:
Я также хотел бы, чтобы числа распределялись так, чтобы они переворачивались взад и вперед, вот пример с большим количеством чисел, чтобы проиллюстрировать это:
Разделите 5000 на 7 и получите 7 чисел, каждое из которых кратно 50:
- 700
- 750
- 700
- 750
- 700
- 700
- 700
Обратите внимание, что в приведенном выше примере меня не беспокоит, что дополнительные 50 не центрированы в ряду, то есть мне не нужно иметь что-то вроде этого:
- 700
- 700
- 750 <--- обратите внимание, что '50' центрированы </li>
- 700
- 750 <--- обратите внимание, что '50' центрированы </li>
- 700
- 700
Надеюсь, я спросил это достаточно ясно, чтобы вы поняли, чего я хочу достичь.
Обновление: вот функция, которую я буду использовать.
var number = 5000;
var n = 7;
var multiple = 50;
var values = getIntDividedIntoMultiple(number, n, multiple)
function getIntDividedIntoMultiple(dividend, divisor, multiple)
{
var values = [];
while (dividend> 0 && divisor > 0)
{
var a = Math.round(dividend/ divisor / multiple) * multiple;
dividend -= a;
divisor--;
values.push(a);
}
return values;
}