В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
solomeina2017
solomeina2017
05.05.2023 03:09 •  Информатика

Дан целочисленный массив из n элементов. Элементы массива могут принимать целые значения от 1 до 10000 включительно. Напишите программу, позволяющую найти и вывести минимальный элементов массива, шестнадцатеричная запись которого содержит ровно две цифры, причём первая (старшая) цифра больше второй (младшей). Если таких чисел нет, нужно вывести ответ 0.

Показать ответ
Ответ:
Dirol1337
Dirol1337
06.10.2020 12:01

Так как целевой ЯП не указан, приведу пример на Haskell.

Точка входа - функция main.

Main.hsmodule Main whereimport ArrsMinmain :: IO ()main = dialogArrsMin.hsmodule ArrsMin whereimport System.IO(hFlush, stdout)import Data.Char(isDigit)import Data.Maybe(isJust)import Control.Applicativeimport Numeric(showHex)import MyParserLibparserInt :: Parser IntparserInt = Parser (\s -> let res = unParser (some digitParser) s in case res of        [] -> []        ((i, rest) : _) -> [(read i :: Int, rest)]    ) where        digitParser = predP isDigitparserIntSequence :: Parser [Int]parserIntSequence = Parser (\s -> let res = unParser (some elementParser) s in case res of        [] -> []        ((i, rest) : _) -> [(i, rest)]    ) where        elementParser = (<*) parserInt $ many $ charP ' 'intToHex :: Int -> StringintToHex = flip showHex ""isItCorrect :: String -> BoolisItCorrect s | (length s == 2) && (head s > s !! 1) = True              | otherwise                            = FalsetakeOnlyCorrect :: Maybe [Int] -> Maybe [Int]takeOnlyCorrect = fmap $ filter (isItCorrect . intToHex)minimum' :: (Ord a) => Maybe [a] -> Maybe aminimum' Nothing = Nothingminimum' (Just []) = Nothingminimum' (Just a) = Just (minimum a)unJust :: Maybe a -> IO aunJust (Just a) = return aunJust Nothing = fail "You can't unjust Nothing"dialog :: IO ()dialog = do    putStr "Put your int sequence: "    hFlush stdout    stupidUserInput <- getLine    let sequen = parseString stupidUserInput parserIntSequence    let answer = minimum' $ takeOnlyCorrect sequen    if isJust answer        then do            number <- unJust answer            print number        else            putStrLn "0"MyParserLibmodule MyParserLib whereimport Data.Listimport Control.Applicativetype DataText = Stringtype RestText = Stringtype PResults parsedType = [(parsedType, RestText)]newtype Parser parsedType = Parser {unParser :: DataText -> PResults parsedType}instance Functor Parser where  fmap f (Parser p1) = Parser p2    where      p2 s = convert (p1 s)      convert  = map (\(val, s) -> (f val, s))instance Applicative Parser where    pure x = Parser (\str -> [(x, str)])    pf <*> px = Parser (\str -> [(f x, sx) | (f, sf) <- unParser pf str,                                             (x, sx) <- unParser px sf])instance Alternative Parser where    empty = Parser (const [])    px <|> py = Parser (\s -> unParser px s ++ unParser py s)parseString :: String -> Parser a -> Maybe aparseString str (Parser p) = case p str of    [(val, "")] -> Just val    _           -> NothingpredP :: (Char -> Bool) -> Parser CharpredP p = Parser f    where        f "" = []        f (c:cs) | p c = [(c, cs)]                 | otherwise = []charP :: Char -> Parser CharcharP ch = predP (\c -> c == ch)stringP :: String -> Parser StringstringP str = Parser    f    where        f str' | str == str' = [("", str)]               | otherwise = [] skip :: (Char -> Bool) -> Parser ()skip p = Parser (\str -> [((), dropWhile p str)])prefixP :: String -> Parser StringprefixP token = Parser f    where        f str | token `isPrefixOf` str = [(drop (length token) str, token)]              | otherwise = []skipString :: String -> Parser ()skipString token = () <$ prefixP token
Дан целочисленный массив из n элементов. Элементы массива могут принимать целые значения от 1 до 100
Дан целочисленный массив из n элементов. Элементы массива могут принимать целые значения от 1 до 100
Дан целочисленный массив из n элементов. Элементы массива могут принимать целые значения от 1 до 100
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота