Кратное x, ближайшее к n

Опубликовано: 19 Января, 2022

Учитывая два числа 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 и многому другому, см. Полный курс подготовки к собеседованию .