Минимизируйте операции до тех пор, пока a или b не превысит N, заменив a или b их суммой
Даны три целых числа 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)