Найдите число, сформированное за K шагов, уменьшив N на 1, если последняя цифра равна 0, иначе разделите на 10.

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

Даны два целых числа 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)