Итак, я ищу алгоритм, способный дать мне самое близкое к n число, которое является множителем m.
В случае, если я формулирую этот вопрос глупо, я приведу несколько примеров:)
n = 10;м = 400;выход: 10
n = 11;м = 400;выход: 10
n = 16;м = 400;выход: 16
n = 17;м = 400;выход 16
n = 19;м = 400;выходной 20
Я чувствую себя глупо сейчас.Я мог бы просто грубо заставить это сделать несколько петель, я думаю, но это не правильно.В настоящее время я делаю это в Python, но если бы я знал формулу, я думаю, это не имеет значения, какой язык я использую.
Редактировать: Итак, я создаю его с циклом while в JavaScript, и он работает, но я бывсе еще хочу более элегантное решение.
export const closestNumber = (n, m) => {
if (m % n !== 0) {
let p = 0;
while (true) {
p += 1;
if (m % (n + p) === 0) {
return Math.abs(n + p);
}
if (m % (n - p) === 0) {
return Math.abs(n - p);
}
}
}
return Math.abs(n);
};
Заранее спасибо, парни и девушки.Я знаю, что здесь много умных людей.:)