Найдите максимум между N и числом, образованным путем обращения 32-битного двоичного представления N
Для данного положительного 32-битного целого числа N задача состоит в том, чтобы найти максимум между значением N и числом, полученным десятичным представлением обращения двоичного представления N в 32-битное целое число.
Примеры:
Input: N = 6
Output: 1610612736
Explanation:
Binary representation of 6 in a 32-bit integer is 00000000000000000000000000000110 i.e., (00000000000000000000000000000110)2 = (6)10.
Reversing this binary string gives (01100000000000000000000000000000)2 = (1610612736)10.
The maximum between N and the obtained number is 1610612736. Therefore, print 1610612736.Input: N = 1610612736
Output: 1610612736
Подход: выполните следующие шаги, чтобы решить проблему:
- Вычислите двоичную строку числа N и сохраните ее в строке S.
- Переверните строку S .
- Вычислите десятичное значение вновь перевернутой строки S в переменной, скажем, M .
- После выполнения вышеуказанных шагов выведите в качестве результата максимальное значение N и M.
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(32)
Вспомогательное пространство: O(1)