gpt4 book ai didi

haskell - 十进制数中 1 的位数

转载 作者:行者123 更新时间:2023-12-02 15:12:19 25 4
gpt4 key购买 nike

如何编写一个函数来返回十进制数对应的 1 位的个数?也许是平方根函数?类型应该是这样的:

bits :: Int -> Int

编辑:已解决

uns :: Int -> Int
uns 0 = 0
uns 1 = 1
uns x | mod x 2 == 1 = 1 + uns (div x 2)
| otherwise = uns (div x 2)

最佳答案

这个老把戏怎么样?

import Data.Bits

countOnes 0 = 0
countOnes x = 1 + countOnes (x .&. (x-1))

它仅递归 n 次,其中 nx 中 1 的位数。

当然,如果您要导入Data.Bits,那么您不妨按照@Cirdec的建议使用popCount

关于haskell - 十进制数中 1 的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31922645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com