Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Data.Char
- -- 1 zadacha
- countDigits :: Int -> Int
- countDigits n
- | n < 10 = 1
- | otherwise = 1 + (countDigits(n `div` 10 ))
- countDigitsIter :: Int -> Int
- countDigitsIter n = helper n 0
- where
- helper 0 cnt = cnt
- helper number cnt = helper (number `div` 10)(cnt + 1)
- -- 2 zadacha
- sumDigits :: Int -> Int
- sumDigits number
- | number == 0 = 0
- | otherwise = 0 + (sumDigits(number `mod` 10))
- sumDigitsIter :: Int -> Int
- sumDigitsIter n = helper n 0
- where
- helper 0 sum = sum
- helper number sum = helper (number `div` 10)(sum + (number `mod` 10))
- -- 3 zadacha
- countOccurences :: Int -> Int -> Int
- countOccurences n digit
- | n `mod` 10 == digit = 1 + countOccurences(n `div` 10)
- | otherwise = countOccurences(n `div` 10)
- countOccurencesIter :: Int -> Int -> Int
- countOccurencesIter number digit = helper number digit 0
- where
- helper number digit cnt
- | number == digit = helper (number `div` 10)(digit)(cnt + 1)
- | otherwise = helper (number `div` 10)(digit)(cnt)
- main :: IO ()
- main = do
- -- print (countDigits 49128)
- -- print (countDigitsIter 128)
- -- print (sumDigitsIter 123)
- print(countOccurences 1233 3)
- print(countOccurencesIter 1233 3)
Advertisement
Add Comment
Please, Sign In to add comment