Mira2706

Untitled

Feb 24th, 2020
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import Data.Char
  2.  
  3.  
  4. -- 1 zadacha
  5. countDigits :: Int -> Int
  6. countDigits n
  7.     | n < 10    = 1
  8.     | otherwise = 1 + (countDigits(n `div` 10 ))
  9.  
  10. countDigitsIter :: Int -> Int
  11. countDigitsIter n = helper n 0
  12.      where
  13.          helper 0 cnt = cnt
  14.          helper number cnt = helper (number `div` 10)(cnt + 1)
  15.  
  16.  
  17. -- 2 zadacha
  18.  
  19. sumDigits :: Int -> Int
  20. sumDigits number
  21.     | number == 0 = 0
  22.     | otherwise   = 0 + (sumDigits(number `mod` 10))
  23.  
  24. sumDigitsIter :: Int -> Int
  25. sumDigitsIter n = helper n 0
  26.      where
  27.          helper 0 sum      = sum
  28.          helper number sum = helper (number `div` 10)(sum + (number `mod` 10))
  29.  
  30. -- 3 zadacha
  31.  
  32. countOccurences :: Int -> Int -> Int
  33. countOccurences n digit
  34.         | n `mod` 10 == digit = 1 + countOccurences(n `div` 10)
  35.         | otherwise            = countOccurences(n `div` 10)
  36.        
  37. countOccurencesIter :: Int -> Int -> Int
  38. countOccurencesIter number digit = helper number digit 0
  39.      where
  40.          helper number digit cnt
  41.             | number == digit = helper (number `div` 10)(digit)(cnt + 1)
  42.             | otherwise       = helper (number `div` 10)(digit)(cnt)
  43.      
  44.  
  45.  
  46.  
  47.  
  48. main :: IO ()
  49. main = do
  50.    -- print (countDigits 49128)
  51.     -- print (countDigitsIter 128)
  52.     -- print (sumDigitsIter 123)
  53. print(countOccurences 1233 3)
  54. print(countOccurencesIter 1233 3)
Advertisement
Add Comment
Please, Sign In to add comment