【发布时间】:2017-03-16 07:09:04
【问题描述】:
下面的程序应该检查输入 n 是否可以被 n 中的数字之和整除
module Harshad where
isHarshad :: Int -> Bool
isHarshad n = (mod n (sumDig n)) == 0)
where
sumDig n
| (floor (n / 10) == 0) = n -- n consists of only one digit
| otherwise = sumDig (floor (n / 10)) + floor (10*(n - floor (n / 10)))
我得到以下编译错误: * 没有使用 `sumDig' 产生的 (RealFrac Int) 实例
即使在尝试添加各种转换后,我仍然卡住了。
【问题讨论】:
-
sumDig应该有什么类型? -
我想的一个 Int
标签: haskell types functional-programming