Найдите число, сформированное за K шагов, уменьшив N на 1, если последняя цифра равна 0, иначе разделите на 10.
Даны два целых числа N и K . Выполните следующие операции над N :
- если последняя цифра N отлична от нуля, уменьшите число на единицу.
- если последняя цифра N равна нулю, разделить число на 10 (т.е. удалить последнюю цифру).
Задача состоит в том, чтобы вывести результат после K таких операций.
Примеры:
Input: N = 512, K = 4
Output: 50
Explanation: Following are the operations performed K times to get the desired result.
Operation 1: Last digit of N i.e. 2 != 0. N is reduced by 1. ( N = 512 – 1 i.e. 511).
Operation 2: Last digit of N i.e. 1 != 0. N is reduced by 1. (N = 511 – 1 i.e. 510).
Operation 3: Last digit of N is 0. N is divided by 10. ( N = 510/10 i.e. 51).
Operation 4: Last digit of N i.e. 2 != 0. N is reduced by 1. (N = 51 – 1 i.e. 50).
Therefore, after 4 operations N = 50.Input: N = 100, K = 2
Output: 1
Explanation: N is divided by 10 two times.
Подход: эта проблема основана на реализации и похожа на последнюю цифру числа. Выполните следующие шаги, чтобы решить данную проблему.
- Несколько раз проверьте последнюю цифру целого числа N .
- Если последняя цифра равна 0 , разделите N на 10 .
- Если последняя цифра НЕ 0 , вычесть 1 из N.
- Повторите вышеуказанные шаги K раз.
Ниже приведена реализация вышеуказанного подхода.
Временная сложность: O(K)
Вспомогательное пространство: О(1)