Дан целочисленный массив из n элементов. Элементы массива могут принимать целые значения от 1 до 10000 включительно. Напишите программу, позволяющую найти и вывести минимальный элементов массива, шестнадцатеричная запись которого содержит ровно две цифры, причём первая (старшая) цифра больше второй (младшей). Если таких чисел нет, нужно вывести ответ 0.
297
374
Ответы на вопрос:
Так как целевой ЯП не указан, приведу пример на 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 tokenprogram gwr;
var
i,n : integer;
begin
i := 1;
writeln('Введите N');
read(n);
repeat
writeln(i);
i := i +1;
until i > n
end.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
serjyas197230.04.2023 03:57
-
Zero0000030.01.2021 22:04
-
zzxxccv104.05.2020 21:27
-
EatDrinkAndEat18.07.2022 08:10
-
ymnick22806.08.2022 19:22
-
GranitaBerchuk08.01.2020 16:12
-
Enotiha21720.03.2021 03:55
-
супербятя19.10.2021 22:26
-
Any007027.02.2020 22:24
-
alholod2p00me016.12.2022 03:44
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.