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+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告