Десятичный эквивалент конкатенации абсолютной разницы минимального и округленного значений элементов массива в виде двоичной строки
Опубликовано: 22 Сентября, 2022
Дан массив arr[] , состоящий из N чисел с плавающей запятой. Задача состоит в том, чтобы напечатать десятичное представление двоичного массива, построенного из абсолютной разницы между значением пола и округления для каждого элемента массива.
Примеры:
Input: arr[] = {1.2, 2.6, 4.2, 6.9, 3.1, 21.6, 91.2}
Output: 42
Explanation:
Below is the image to illustrate the above example:
Input: arr[] = {5.7, 2.8, 1.9, 5.6, 2.2}
Output: 30
Подход: выполните следующие шаги, чтобы решить проблему:
- Инициализируйте переменную, скажем, результат как 0 , которая хранит сформированные результирующие числа.
- Инициализируйте переменную, скажем, мощность как 0 , которая сохраняет мощность 2 , добавляемую на каждом шаге.
- Пройдите данный массив arr[] с конца и выполните следующие шаги:
- Инициализируйте переменную, скажем, бит , в которой хранится абсолютная разница между значением округления и минимальным значением каждого элемента массива.
- Если значение абсолютной разности равно 1 , то умножьте цифру на надлежащую степень 2 и прибавьте ее к переменной result .
- Увеличьте значение мощности на 1 .
- После выполнения вышеуказанных шагов выведите значение результата как требуемый десятичный эквивалент двоичного представления.
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(N)
Вспомогательное пространство: O(1)
