Найдите число такое, что сумма N с ним является палиндромом

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

Для заданного очень большого числа N [1 ≤ длина цифры числа N (n) ≤ 10 6 ] задача состоит в том, чтобы найти некоторое натуральное число той же длины, что и N, без начальных нулей, такое, что сумма этих двух чисел равна палиндром.

Примеры :

Input: N = 54321
Output: 45678
Explanation: 54321 + 45678 = 99999 which is a palindrome.

Input: N = 999
Output: 112

Подход : Чтобы решить проблему, следуйте следующей идее:

If the number does not start with 9, then make the palindrome of  9999…… of length of N and if the number starts with 9 then make the palindrome 1111….. of length of (n + 1).

  • So, the resultant number if it does not starts with 9 is (9999….. to n – N). 
  • And, the resultant number if it starts with 9 is (11111….. to n+1 – N). 

Выполните следующие шаги, чтобы решить проблему:

  • Найдите количество цифр в числе N.
  • Если N начинается с 9:
    • Тогда считайте, что сумма равна [ 1111…to (n+1) ].
    • Затем вычислите число, как указано выше.
  • Если N не начинается с 9:
    • Тогда считайте, что сумма равна [ 999…to n ].
    • Получите номер, следуя описанному выше процессу.

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

Временная сложность : O(N)
Вспомогательное пространство : O(N)

РЕКОМЕНДУЕМЫЕ СТАТЬИ