使用遞迴的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個數的和。我們展示了直接和間接兩種遞迴方法。在第一個例子中,我們展示了直接遞迴方法,在第二個例子中,我們展示了間接遞迴方法。