使用遞迴的Go語言程式計算N個數的和


在本教程中,我們將學習如何使用Go語言程式設計中的遞迴方法來計算N個數的和。

遞迴是指函式直接或間接地呼叫自身。每個遞迴函式都有一個基本情況或基本條件,它是遞迴中最終的可執行語句,並停止進一步的呼叫。

下面是兩個例子,展示了兩種不同型別的遞迴:直接和間接。

使用直接遞迴方法計算N個數的和

語法

Syntax for direct recursion
func recursion() {
   recursion()
}
func main() {
   recursion();
}

演算法

  • 步驟1 − 匯入fmt包

  • 步驟2 − 建立sum()函式

  • 步驟3 − 我們將使用if...else條件語句

  • 步驟4 − 開始main()函式

  • 步驟5 − 初始化整型變數

  • 步驟6 − 呼叫sum()函式

  • 步驟7 − 使用fmt.Printf()在螢幕上列印結果

示例

使用直接遞迴方法的Go語言程式程式碼,用於計算N個數的和。

// GOLANG PROGRAM TO FIND THE SUM OF // N NUMBERS USING RECURSION package main // fmt package provides the function to print anything import "fmt" // defining the function with a parameter of int // type and have a return type int func sum(n int) int { // this is the base condition // if n is equal to 0 if n == 0 { // function will return 0 and end the recursive function return 0 } else { // recursive call to itself return n + sum(n - 1) } } // start the main() function func main() { // Declare and initialize integer variable number := 25 fmt.Println("Sum of first n numbers using recursion in Golang Program") fmt.Printf("Sum of the first %d numbers is %d", number, sum(number)) // Prints the final result }

輸出

Sum of first n numbers using recursion in Golang Program
Sum of the first 25 numbers is 325

程式碼描述

  • 在上面的程式中,我們首先宣告main包

  • 我們匯入了包含fmt包檔案的fmt包

  • 接下來,我們建立一個sum()函式,使用遞迴技術來計算n個數的和

  • 我們將使用if...else條件語句,它允許您在指定條件為真時執行一段程式碼,而在條件為假時執行另一段程式碼。

  • 如果n等於0,函式將返回0並結束遞迴函式

  • 否則,函式將遞迴呼叫自身並返回(n + sum(n-1))

  • 現在開始main()函式

  • 接下來初始化整型變數number

  • 現在呼叫sum()函式

  • 最後使用fmt.Printf()在螢幕上列印結果。

使用間接遞迴方法計算N個數的和

語法

func recursion_1() {
   recursion_2()}
func recursion_2(){
   recursion_1()}
func main() {
   recursion_1();
}

演算法

  • 步驟1 − 匯入fmt包

  • 步驟2 − 建立sum()函式

  • 步驟3 − 我們將使用if...else條件語句

  • 步驟4 − 建立sumofn()函式

  • 步驟5 − 間接遞迴呼叫sum()函式

  • 步驟6 − 開始main()函式

  • 步驟7 − 初始化整型變數number

  • 步驟8 − 呼叫sum()函式

  • 步驟9 − 使用fmt.Printf()在螢幕上列印結果

示例

使用間接遞迴方法的Go語言程式程式碼,用於計算N個數的和。

// GOLANG PROGRAM TO FIND THE SUM OF // N NUMBERS USING RECURSION package main // fmt package provides the function to print anything import "fmt" // defining the function with a parameter of int // type and have a return type int func sum(n int) int { // this is the base condition // if num is equal to 0 if n == 0 { // function will return 0 and end the recursive function return 0 } else { // recursive call to sumofn () return n + sumofn(n - 1) } } // defining the function with a parameter of int // type and have a return type int func sumofn(n int) int { // this is the base condition // if num is equal to 0 if n == 0 { // function will return 0 and end the recursive function return 0 } else { // recursive call to function sum () return n + sum(n - 1) } } // start the main() function func main() { // Declare and initialize integer variable number := 55 fmt.Println("Sum of first n numbers using recursion in Golang Program") // calling the function sum() fmt.Printf("Sum of first %d numbers is %d", number, sum(number)) // Prints the final result }

輸出

Sum of first n numbers using recursion in Golang Program
Sum of first 55 numbers is 1540

程式碼描述

  • 在上面的程式中,我們首先宣告main包

  • 我們匯入了包含fmt包檔案的fmt包

  • 接下來,我們建立一個natural1()函式,使用遞迴技術來計算自然數的和

  • 接下來,我們建立一個sum()函式,使用遞迴技術來計算n個數的和

  • 我們將使用if...else條件語句,它允許您在指定條件為真時執行一段程式碼,而在條件為假時執行另一段程式碼。

  • 如果n等於0,函式將返回0並結束遞迴函式

  • 否則,函式將遞迴呼叫sumofn()函式並返回(n + sumofn(n-1))

  • 接下來,我們建立一個sumofn()函式,並像上面的函式一樣,對sum()函式進行遞迴呼叫並返回(n + sum(n-1))

  • 現在開始main()函式

  • 接下來初始化整型變數number

  • 現在呼叫第一個函式sum()

  • 最後使用fmt.Printf()在螢幕上列印結果。

結論

在以上兩個例子中,我們已經成功編譯並執行了Go語言程式程式碼,使用遞迴技術來計算n個數的和。我們展示了直接和間接兩種遞迴方法。在第一個例子中,我們展示了直接遞迴方法,在第二個例子中,我們展示了間接遞迴方法。

更新於:2022年10月25日

瀏覽量1K+

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告