使用遞迴查詢自然數之和的 Haskell 程式


在 Haskell 中,我們使用遞迴和尾遞迴來查詢自然數之和。在第一個示例中,我們將使用遞迴以及基本情況和遞迴情況;在第二個示例中,我們將使用 sumNat 函式;在第三個示例中,我們將使用使用者定義的尾遞迴函式。

演算法

  • 步驟 1 − 定義使用者自定義的遞迴函式 sumOfNaturalNumbers,

  • 適用於示例 1、2 和 3

sumOfNaturalNumbers 0 = 0
sumOfNaturalNumbers n = n + sumOfNaturalNumbers (n - 1).
  • 適用於示例 4

sumNat' 0 acc = acc
sumNat' n acc = sumNat' (n-1) (n + acc).
  • 步驟 2 − 程式執行將從 main 函式開始。main() 函式控制整個程式。它被寫成 main = do。在 main 函式中,n 的值設定為 10 並傳遞給 sumOfNaturalNumbers 函式,該函式返回從 1 到 10 的自然數之和。

  • 步驟 3 − 初始化名為“n”的變數。它將儲存要列印總和的數字。

  • 步驟 4 − 呼叫函式後,使用“print”函式將結果總和列印到控制檯。

示例 1

在這個示例中,我們將瞭解如何使用遞迴查詢自然數之和。這可以透過使用使用者自定義的遞迴函式來完成。

sumOfNaturalNumbers :: Integer -> Integer
sumOfNaturalNumbers 0 = 0
sumOfNaturalNumbers n = n + sumOfNaturalNumbers (n - 1)

main :: IO ()
main = do
   let n = 10
   print (sumOfNaturalNumbers n)

輸出

55

示例 2

在這個示例中,我們將瞭解如何使用遞迴查詢自然數之和。這可以透過使用使用者自定義的遞迴 sumNat 函式來完成。

sumNat :: Integer -> Integer
sumNat 0 = 0
sumNat n = n + sumNat (n-1)

main :: IO ()
main = do
   let num = 5
   print (sumNat num)

輸出

15

示例 3

在這個示例中,我們將瞭解如何使用遞迴情況查詢自然數之和。它使用一個名為“sum'”的函式,該函式以一個整數作為引數。該函式使用一個遞迴情況,其中基本情況是當輸入整數為 0 時,在這種情況下,該函式返回 0。在另一種情況下,當輸入整數大於 0 時,該函式將輸入整數新增到遞迴呼叫該函式的結果中,並將輸入整數減 1。

sum' :: Integer -> Integer
sum' n
   | n == 0 = 0
   | n > 0 = n + sum' (n-1)

main :: IO ()
main = do
let num = 5
print (sum' num)

輸出

15

示例 4

在這個示例中,我們將瞭解如何使用遞迴查詢自然數之和。這可以透過使用尾遞迴函式來完成。

sumNat' :: Integer -> Integer -> Integer
sumNat' 0 acc = acc
sumNat' n acc = sumNat' (n-1) (n + acc)

main :: IO ()
main = do
   let num = 10
   print (sumNat' num 0)

輸出

55

結論

在 Haskell 中,要使用遞迴查詢自然數之和,我們可以使用使用者自定義函式、case 語句或尾遞迴方法。

更新於: 2023-03-27

219 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.