Haskell中连续零的最大数量

时间:2018-02-08 16:36:09

标签: haskell functional-programming

在Haskell,我有这个:

import Numeric
import Data.Char
import Data.List

   toBin :: Integer -> Integer
   toBin n = read (showIntAtBase 2 intToDigit n "")

    -- λ> toBin 558745840
    -- 100001010011011100100011110000
    -- (0.01 secs, 117,680 bytes)

    digits :: Integer -> [[Integer]]
    digits n = group [read[d] | d <- show n]

    -- λ> digits (toBin 558745840)
    -- [[1],[0,0,0,0],[1],[0],[1],[0,0],[1,1],[0],[1,1,1],[0,0],[1],[0,0,0],[1,1,1,1],[0,0,0,0]]
    -- (0.01 secs, 288,624 bytes)

并且,我必须生成一个函数,该函数表示一行中具有二进制数的最大零数,但我不知道该怎么做。换句话说,

f :: Integer -> Integer
f 558745840 = 4
f 2018 = 3
f 529 = 4

f 558745840 = 4因为1 0000 101001101110010001111 0000 ,它的行中有4个(最大数量)ceros。

你能帮帮我吗?也许问题的标题可以改变,我不知道在一个问题中总结,抱歉。

0 个答案:

没有答案