[Haskell] CodeWars|Sum of Digits
2017-10-04 17:12
399 查看
https://www.codewars.com/kata/541c8630095125aba6000c00/haskell
Digital root是一个数字所有位的递归和。给定n,算出n各位的和n′,继续这个操作直到n(p)=n(p−1)。
以下是范例:
数学法
题目
本题你需要写一个Digital Root函数。Digital root是一个数字所有位的递归和。给定n,算出n各位的和n′,继续这个操作直到n(p)=n(p−1)。
以下是范例:
digital_root(16) => 1 + 6 => 7 digital_root(942) => 9 + 4 + 2 => 15 ... => 1 + 5 => 6 digital_root(132189) => 1 + 3 + 2 + 1 + 8 + 9 => 24 ... => 2 + 4 => 6 digital_root(493193) => 4 + 9 + 3 + 1 + 9 + 3 => 29 ... => 2 + 9 => 11 ... => 1 + 1 => 2
题解
模拟法:module DigitalRoot where import Data.Char digitalRoot :: Integral a => a -> a digitalRoot x | x < 10 = x | otherwise = digitalRoot $ fromIntegral $ sum (map digitToInt $ show $ toInteger x)
数学法
module DigitalRoot where digitalRoot :: Integral a => a -> a digitalRoot n = 1 + (n - 1) `rem` 9
相关文章推荐
- [Haskell] CodeWars|Sum of odd numbers
- Ural 1658 Sum of Digits
- URAL 1206 Sum of Digits of the Sum of Numbers
- A. Lucky Sum of Digits
- Given the array of digits (0 is also allowed), what is the minimal sum of two integers that are made
- Lucky Sum of Digits
- Codeforces - 277.5 (Div. 2)C - Given Length and Sum of Digits...(模拟 or dfs)
- C. Given Length and Sum of Digits...
- Sum of Digits is Prime
- Hdu3022 Sum of Digits
- CF 489 C Given Length and Sum of Digits...(水题)
- Rust : codewars的Sum of Pairs
- Codeforces Round #277.5 (Div. 2) C. Given Length and Sum of Digits...
- Codeforces Round #277.5 (Div. 2)C. Given Length and Sum of Digits...(贪心)
- CodeWars:Sum of odd numbers
- Codeforces #277.5 (Div. 2) C. Given Length and Sum of Digits...(简单贪心)
- Codeforces Round #277.5 (Div. 2)C. Given Length and Sum of Digits...(贪心)
- Codeforces Round #277.5 (Div. 2)-C. Given Length and Sum of Digits...
- Codeforces Round #277.5 (Div. 2)——C贪心—— Given Length and Sum of Digits
- [Haskell] CodeWars|Growth of a Population