Решить две задачи

Выполнен
Заказ
3729565
Раздел
Работа с текстом
Предмет
Другое
Тип работы
Антиплагиат
70% eTXT
Срок сдачи
17 Дек 2020 в 15:00
Цена
0 ₽
Блокировка
10 дней
Размещен
14 Дек 2020 в 15:41
Просмотров
669
Описание работы
1. Написать функцию
int imull_overflow(int64_t a, int64_t b, int64_t *res);
Функция вычисляет произведение a*b как если бы умножение выполнялось для чисел неограниченной разрядности. По указателю res помещаются младшие 64 бита результата. Функция возвращает 0, если результат умножения представим значением типа int64_t, и 1, если результат умножения непредставим значением типа int64_t. Знаковые числа представляются в дополнительном коде.
В функции не должны использоваться конструкции, приводящие к Undefined Behavior.
Не используйте расширения Си (gcc __builtin и т. п.). Не используйте какие-либо библиотечные функции. Не используйте вещественную арифметику.
Ограничение времени: 1 с
Ограничение реального времени: 5 с
Ограничение памяти: 64M
2. На стандартном потоке ввода задается последовательность пар чисел в десятичной записи. Каждое число состоит из целой части и опциональной дробной части. Дробная часть отделяется от целой знаком "точка". И в целой, и в дробной части, если она присутствует, должна находиться хотя бы одна десятичная цифра. Перед числом может находится один знак "плюс" или "минус".
Примеры корректно записанных чисел: 0, 12101, 12.4, 00.0000, -10, +1.001. Примеры некорректно записанных чисел: 121., .12, ., 1e10, ++2.
Числа в памяти должны представляться в виде числа с фиксированной точкой. Дробная часть числа должна содержать 8 десятичных знаков, а целая часть числа — до 10 десятичных знаков. При преобразовании числа во внутреннее представление оно должно округляться к ближайшему четному.
Для каждой пары считанных чисел необходимо выполнить деление первого числа на второе. Результатом деления тоже является число с фиксированной точкой с параметрами, описанными выше. Результат деления должен быть округлен к ближайшему четному.
Каждый результат деления должен быть выведен на стандартный поток вывода на отдельной строке. В выводимом числе должно быть выведено минимальное количество цифр в целой части и всегда 8 цифр в дробной части. Знак "плюс" выводиться не должен. Перед нулем знак "минус" выводиться не должен.
Если преобразование во внутренее представление хотя бы одного из чисел пары не может быть выполнено, например, из-за переполнения, или операция деления не может быть выполнена, или результат деления не может быть представлен числом с фиксированной точкой, вместо результата деления для этой пары выводится строка ERROR.
Типы и операции с плавающей точкой использовать запрещено.
Вход1:
1 15
-1000 100
833.14 -0.0000
Выход1:
0.06666667
-10.00000000
ERROR
Ограничение времени: 1 с
Ограничение реального времени: 5 с
Ограничение памяти: 64M
Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу1 год
Средний балл4.52
СтоимостьНазначаете сами
ЭкспертВыбираете сами
Уникальность работыот 70%
Время выполнения заказа:
2 дня 10 часов 19 минут
Выполнен в срок
Отзыв о выполненном заказе
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Прямой эфир