Десятичный эквивалент конкатенации абсолютной разницы минимального и округленного значений элементов массива в виде двоичной строки

Опубликовано: 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)