ЗАДАЧИ
problems.ru |
О проекте
|
Об авторах
|
Справочник
Каталог по темам | по источникам | |
|
Тема:
Информатика
Подтемы:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Версия для печати
Убрать все задачи Во входном файле записано равенство вида A = B, где A и B – это выражения, содержащие сколь угодно длинные целые числа и знаки операций +, - (бинарный и унарный) и *. Выражения не содержат скобок. Требуется проверить выполнение заданного равенства и вывести в выходной файл результат проверки в форме «Да, выполняется» или «Нет, не выполняется». Длина входного файла данных не превосходит 60 килобайт. Числа и знаки операций в выражении могут разделяться пробелами и/или символами перевода строки. Пример входного файла 2 * 43 = 86 Пример выходного файла Да, выполняется Решение |
Страница: << 32 33 34 35 36 37 38 >> [Всего задач: 277]
Любая булева функция однозначно задается своей таблицей истинности, в которой для каждого возможного набора значений аргументов указано значение функции. Например, x AND y – булева функция от двух аргументов. Ее таблица истинности выглядит так: Если договориться, что наборы значений аргументов в таблице располагаются в лексикографическом порядке, то функция AND однозначно задается третьим столбцом таблицы – строкой 0001. Аналогично, каждой булевой функции от k аргументов можно поставить в соответствие строку из нулей и единиц длины 2k. Задан набор из N+1 булевой функции (f, f1, f2, ..., fN). Напишите программу,
которая определяет, можно ли функцию f выразить через функции f1, f2, ..., fN, и
если такие представления возможны, то находит кратчайшее по числу символов
среди них.
Моделью такого предложения (не удовлетворяющей лишь свойству
правдивости) может служить такой текст:
<Дата> <Дата> + <Сдвиг> <Дата> - <Сдвиг> <Дата> - <Дата> Здесь <Дата> задается в одном из следующих трех форматов: А) дд.мм.гггг (например, 21.06.1998 ). В этой записи день и месяц задаются в точности двумя десятичными цифрами, год – ровно четырьмя. Б) д месяца г года (например, 21 июня 1998 года ). В этом формате могут присутствовать ведущие нули (например, 01 июня 198 года ). В) сегодня – текущая дата, установленная в компьютере. <Сдвиг> задается в виде [L лет ] [M месяцев ] [N недель ] [D дней ]. Квадратные скобки здесь означают, что некоторые из указанных четырех составных частей могут опускаться (но не все сразу). Слова «лет», «месяцев», «недель», «дней» склоняются по правилам русского языка: 1 год, 5 лет, 2 месяца, 5 месяцев и т.д. Значением выражений первых трех типов является дата. В случае
выражения первого типа значением является сама <Дата>. В случае выражений
второго и третьего типа вычисление искомой даты происходит следующим
образом: сначала прибавляется (либо вычитается) L лет, затем M месяцев, после
чего N недель и, наконец, D дней. Если в течение этого процесса получается
несуществующее число месяца, то берется последнее число этого месяца (см.
пример). Результатом выражения четвертого типа является количество дней
между двумя указанными датами.
Длина входного файла данных не превосходит 60 килобайт. Числа и знаки операций в выражении могут разделяться пробелами и/или символами перевода строки. Пример входного файла 2 * 43 = 86 Пример выходного файла Да, выполняется
Имеются два шаблона. Требуется найти строку минимальной длины,
которая удовлетворяет обоим шаблона, либо выдать сообщение, что такой
строки не существует.
Страница: << 32 33 34 35 36 37 38 >> [Всего задач: 277] |
© 2004-...
МЦНМО
(о копирайте)
|
Пишите нам
|