Кратное x, ближайшее к n
Учитывая два числа n и x, нам нужно вычислить наименьшее значение x, которое ближе всего к заданному числу n.
Примеры:
Ввод: n = 9, x = 4. Выход: 8 Ввод: n = 2855, x = 13. Выход: 2860 Ввод: n = 46426171, x = 43. Выход: 46426154 Ввод: n = 1, x = 3 Выход: 3
Нам нужно найти такое k, чтобы x * k было ближе всего к n. Если мы сделаем k = n / x, мы получим значение k, которое может не привести к максимуму. Мы можем приблизиться к нему, сравнив значения floor (n / x) * x и ceil (n / x) * x.
Ниже представлено интересное решение, которое не требует вычислений floor (n / x) и ceil (n / x). Идея состоит в том, чтобы сделать следующие два шага.
п = п + х / 2; п = п - (п% х); результат = n
Рассмотрим ниже пример
n = 2855 х = 13 п = 2855 + 13/2 = 2861 n = 2861 - (2861% 13) = 2861 - 1 = 2860
Ниже приведены реализации вышеуказанных шагов.
Выход:
56295
Эта статья предоставлена Прамодом Кумаром . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью на сайте deposit.geeksforgeeks.org или отправить свою статью по электронной почте: grant@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.
Вниманию читателя! Не прекращайте учиться сейчас. Получите все важные математические концепции для соревновательного программирования с курсом Essential Maths for CP по доступной для студентов цене. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .