Haskell程序计算整数的位数


在本教程中,我们将讨论编写一个程序,在 Haskell 编程语言中计算整数的位数。

在本教程中,我们将看到三种在 Haskell 中实现计算位数程序的方法。

  • 计算整数位数的程序。
  • 使用 if-else 语句计算整数位数的程序。
  • 使用 length 函数计算整数位数的程序。

算法步骤

获取输入或初始化一个整数变量。

实现计算整数位数的程序逻辑。

打印或显示计数结果。

示例 1

计算整数位数的程序

-- function declaration
countDigits :: Int->Int
-- function definition
-- base case
countDigits 0 = 0
countDigits n = 1 + countDigits (div n 10)
main :: IO()
main = do
-- declaring and initializing a variable number
   let number = 123
-- invoking the function countDigits and printing the returned integer
   print ("number of digits in the number " ++ (show number) ++ " is:")
   print (countDigits number)

输出

"number of digits in the number 123 is:"
3

在上面的程序中,我们声明了一个名为 countDigits 的函数,它接受一个整数作为参数并返回一个整数。在其函数定义中,我们接受一个整数参数 n,并返回 1 加上对自身进行递归调用,并将参数 n 除以 10。这些调用会一直进行,直到达到基本情况,即参数为 0。在这种情况下,函数返回 0。也就是说,此函数计算整数的位数。在主函数中,我们声明并初始化了一个名为 number 的变量。最后,我们调用了 countDigits 函数,并使用 print 函数打印了返回的输出。

示例 2

使用 if-else 语句计算整数位数的程序。

-- function declaration
countDigits :: Int->Int
-- function definition
countDigits n = if (n>0)
   then 1 + countDigits (div n 10)
   else 0
main :: IO()
main = do
-- declaring and initializing a variable number
   let number = 123
-- invoking the function countDigits and printing the returned integer
   print ("number of digits in the number " ++ (show number) ++ " is:")
   print (countDigits number)

输出

"number of digits in the number 123 is:"
3

在上面的程序中,我们声明了一个名为 countDigits 的函数,它接受一个整数作为参数并返回一个整数。在其函数定义中,我们接受一个整数参数 n。如果 n 的值大于 0,则返回对自身进行递归调用,并将参数 n 除以 10 并加上 1。如果值为零,则返回零。也就是说,此函数计算整数的位数。在主函数中,我们声明并初始化了一个名为 number 的变量。最后,我们调用了 countDigits 函数,并使用 print 函数打印了返回的输出。

示例 3

使用 length 函数计算整数位数的程序。

-- function declaration
countDigits :: Int->Int
-- function definition
countDigits n = d
   where
      str = show n
      d = length str
main :: IO()
main = do
-- declaring and initializing a variable number
   let number = 123
-- invoking the function countDigits and printing the returned integer
   print ("number of digits in the number " ++ (show number) ++ " is:")
   print (countDigits number)

输出

"number of digits in the number 123 is:"
3

在上面的程序中,我们声明了一个名为 countDigits 的函数,它接受一个整数作为参数并返回一个整数。在其函数定义中,我们接受一个整数参数 n。我们使用 show 函数将数字 n 解析为字符串,并将其加载到一个名为 str 的变量中。我们使用参数 str 调用了 length 函数,并将返回的输出加载到一个名为 d 的变量中,该变量由函数返回。length 函数是一个列表函数,它返回列表中元素的数量。由于 Haskell 中的字符串是字符列表,因此所有列表函数都可以在字符串上使用。也就是说,此函数计算整数的位数。在主函数中,我们声明并初始化了一个名为 number 的变量。最后,我们调用了 countDigits 函数,并使用 print 函数打印了返回的输出。

结论

在本教程中,我们讨论了三种在 Haskell 编程语言中实现计算整数位数程序的方法。

更新于: 2022-12-14

1K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.