Спиннер – модная игрушка c подшипником в основании, к которому прикреплены лопасти. Афанасий открыл бизнес по производству спиннеров. Он выяснил, что за спиннер,у которого N лопастей, покупатели готовы платить A + B × N рублей, но при этом покупатель не станет покупать спиннер, если его цена будет выше C рублей. Определите максимальное число лопастей спиннера, который согласится приобрести покупатель.Программа получает на вход три числа A, B, C (стоимость основания спиннера,стоимость одной лопасти и максимальная стоимость всего спиннера). Все числа – целые положительные, не превосходящие 20000000000 , при этом A ≤ C.Программа должна вывести одно число – максимальное число лопастей спиннера.
{Целевой язык не указан, приведу пример на Haskell}
Цена вычисляется как
C - максимальная цена, которую мы можем себе позволить.
Поэтому , где div - оператор целочисленного деления.
Кодmodule Spinner (spinner, maybeTo) whereimport Control.Monad.Fail as MFail (MonadFail, fail) import System.IO (hFlush, stdout)import Text.Read (readMaybe)import Data.Maybe (maybe)maybeTo :: (MonadFail m) => Maybe b -> String -> m bmaybeTo Nothing msg = MFail.fail msgmaybeTo (Just a) _ = return aspinner :: IO ()spinner = do putStr "Enter an A: " hFlush stdout maybeA <- fmap readMaybe getLine :: IO (Maybe Int) a <- maybeTo maybeA "It's not an Int" putStr "Enter an B: " hFlush stdout maybeB <- fmap readMaybe getLine :: IO (Maybe Int) b <- maybeTo maybeB "It's not an Int" putStr "Enter an C: " hFlush stdout maybeC <- fmap readMaybe getLine :: IO (Maybe Int) c <- maybeTo maybeC "It's not an Int" maybe (putStrLn "You can't use 0 with B var!") (putStrLn . ("The maximum spinner's levers number is " ++) . show) (makeNumber a b c) putStrLn ""makeNumber :: Int -> Int -> Int -> Maybe Int makeNumber _ 0 _ = NothingmakeNumber a b c = Just $ div (c - a) b