我需要一个函数,该函数获取两个整数(a
和 b
)并将 A/B
作为 Int
返回。 我确定 A/B
总是一个整数。
这是我的解决方案:
myDiv :: Int -> Int -> Int
myDiv a b =
let x = fromIntegral a
y = fromIntegral b
in truncate (x / y)
但想要找到更简单的解决方案。类似于这样:
myDiv :: Int -> Int -> Int
myDiv a b = a / b
我该如何将整数除以整数并得到整数?
a \
quot` b` (哇,你居然可以用反斜杠在反引号内转义反引号?) - user395760a \
div` b;如果我没记错的话,
quot是截断除法(就像 Demas 想要的),而
div则向零舍入。所以
(-3) `quot` 4 == 0,而
(-3) `div` 4 == -1`。 - Antal Spector-Zabuskydiv
来说要加1。在数学上更加规范,当涉及到负数时,quot
会出现问题。 - luquifromIntegral (ceiling (int1 / int2))
和其他东西搏斗 - 没有一个能给我返回一个Int
,但这个可以。 - MuffinTheMandiv
向负无穷取整,而不是零。 - Lacuno