Ric*_*yes 6 printing format int haskell
这个Haskell程序打印"1.0"如何让它打印"1"?
fact 0 = 1
fact x = x * fact (x-1)
place m n = (fact m) / (fact n) * (fact (m-n))
main = do
print (place 0 0)
Run Code Online (Sandbox Code Playgroud)
red*_*neb 10
通过使用该/操作,您要求haskell使用小数数据类型.在这种情况下,您可能不希望这样.优选使用诸如Int或的整体类型Integer.所以我建议执行以下操作:1.为fact函数添加类型声明,例如fact :: Integer -> Integer
2.使用quot而不是/.
所以你的代码应该是这样的:
fact :: Integer -> Integer
fact 0 = 1
fact x = x * fact (x-1)
place :: Integer -> Integer -> Integer
place m n = (fact m) `quot` (fact n) * (fact (m-n))
main = do
print (place 0 0)
Run Code Online (Sandbox Code Playgroud)
另外,正如@leftaroundabout指出的那样,您可能希望使用更好的算法来计算这些二项式数.
| 归档时间: |
|
| 查看次数: |
260 次 |
| 最近记录: |