Найдите число, составленное K раз, попеременно уменьшая X и прибавляя Y к 0
Даны три положительных целых числа K , X и Y , задача состоит в том, чтобы найти число, образованное попеременным вычитанием X и добавлением Y к 0 общее количество раз.
Примеры:
Input: X = 2, Y = 5, K = 3
Output: 1
Explanation:
Following are the operations perform K(= 3) number of times on 0:
Operation 1: Reduce the value 0 by X(= 2) modifies it to 0 – 2 = 2.
Operation 2: Increment the value -2 by Y(= 5) modifies it to -2 + 5 = 3.
Operation 3: Reduce the value 3 by X(= 2) modifies it to 3 – 2 = 1.
The value obtained after modifying the value is 1.Input: X = 1, Y = 100, K = 4
Output: 198
Наивный подход: Данную задачу можно решить, выполнив заданные операции K раз и распечатав полученный результат.
Временная сложность: O(K)
Вспомогательное пространство: O(1)
Эффективный подход. Описанный выше подход также можно оптимизировать, найдя общее значение, которое уменьшается (с использованием значения X ) и увеличивается (с использованием значения Y ) за K ходов, а затем выводит сумму этих значений в качестве результата. .
Значение, которое необходимо добавить к результату, рассчитывается по формуле:
addY = Y*(K/2)
where, K/2 number of times addition operation is performed.
Значение, которое необходимо вычесть из результата, рассчитывается по формуле:
addY = Y*(K/2 + K&1)
where, K/2 number of times subtraction operation is performed if the number of operation is odd, then additional subtraction is performed.
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(1)
Вспомогательное пространство: O(1)