Минимизируйте операции до тех пор, пока a или b не превысит N, заменив a или b их суммой

Опубликовано: 21 Сентября, 2022

Даны три целых числа a, b и N. Задача состоит в том, чтобы найти минимальные операции сложения между a и b, такие, что после применения операций либо a, либо b становится больше, чем N. Операция сложения определяется как замена любого из a или b с их суммой и сохранением другого нетронутым .

Примеры :

Input: a = 2, b = 3, N = 20
Output: 4
Explanation

  • Adding 2 and 3, 2 + 3 = 5 and replacing 2 with 5,  now a = 5, b = 3
  • Again add a and b 5 + 3 = 8 replace b with 8, now a = 5, b = 8
  • Again add a and b 5 + 8 = 13 replace a with 13. now a = 13, b = 8
  • Again add a and b 13 + 8 = 21 replace b with 21, now a = 13, b = 21  Here, (b>=n) therefore minimum operations required are 4

Input: a = 2, b = 3, N = 5
Output: 1
Explanation: After replacing 2 with 2+3, a becomes 5 and b becomes 3, therefore minimum operations required are 1 

Подход : Идея состоит в том, чтобы добавить a и b и сохранить их сумму в минимуме a и b каждый раз, пока какое-либо из чисел не станет больше , чем N. Причина этого заключается в том, чтобы каждый раз делать минимальный элемент самым большим, делая их сумму высокой и тем самым уменьшить количество необходимых операций.

Ниже приведена реализация вышеуказанного подхода:


Временная сложность : O (мин (журнал (макс (а, N), журнал (макс (b, N)))
Вспомогательное пространство : O(1)