使用遞迴的Go語言程式計算冪
在本教程中,我們將學習如何在Go程式語言中使用遞迴技術計算冪。
冪可以定義為一個數自身相乘特定次數的結果。
指數可以定義為一個數在乘法中使用的次數。冪和指數是改寫數學中冗長乘法問題的重要工具,尤其是在代數中。
例如:24 = 2 × 2 × 2 × 2 = 16,其中2是底數,4是指數。
遞迴是指函式透過直接或間接方式呼叫自身。每個遞迴函式都有一個基本情況或基本條件,這是遞迴中的最終可執行語句,並停止進一步的呼叫。
下面我們展示了兩種不同型別的遞迴方法的示例。
示例1:使用直接遞迴方法計算冪的Go語言程式程式碼
語法
Result = (num * POWER(num, power-1) // Recursive function call to the function POWER() by itself up to the defined condition
演算法
步驟1 − 匯入包fmt。
步驟2 − 建立函式POWER()。
步驟3 − 我們將使用if條件語句。
步驟4 − 對函式本身進行遞迴呼叫。
步驟5 − 啟動函式main()。
步驟6 − 宣告並初始化變數。
步驟7 − 呼叫函式POWER()。
步驟8 − 使用fmt.Printf()在螢幕上列印結果。
示例
// GOLANG PROGRAM TO CALCULATE THE POWER USING RECURSION // Direct Recursion example package main // fmt package provides the function to print anything import "fmt" // create a function func POWER(num int, power int) int { var result int = 1 if power != 0 { // Recursive function call to itself result = (num * POWER(num, power-1)) } return result } func main() { fmt.Println("Golang Program to calculate the power using recursion") // declare and initialize the integer variables var base int = 4 var power int = 2 var result int // calling the POWER() function result = POWER(base, power) // Print the result using in-built function fmt.Printf() fmt.Printf("%d to the power of %d is: %d\n", base, power, result) }
輸出
Golang Program to calculate the power using recursion 4 to the power of 2 is: 16
程式碼描述
在上面的程式中,我們首先宣告包main。
我們匯入了包含fmt包檔案的fmt包。
接下來,我們建立一個函式POWER(),使用直接遞迴技術計算冪。
我們將使用一個if條件語句,如果指定的條件為真,則允許執行一段程式碼,然後遞迴呼叫函式本身。
現在啟動函式main()。GO程式執行從函式main()開始。宣告整數變數base、power和result。
現在呼叫POWER()函式。
最後,使用內建函式fmt.Printf()在螢幕上列印結果。此函式在fmt包下定義,它有助於寫入標準輸出。
示例2:使用間接遞迴方法計算冪的Go語言程式程式碼
語法
func recursion_1() { recursion_2()} func recursion_2(){ recursion_1()} func main() { recursion_1(); }
演算法
步驟1 − 匯入包fmt。
步驟2 − 建立函式POWER_1()。
步驟3 − 我們將使用if條件語句。
步驟4 − 遞迴呼叫函式POWER_2()。
步驟5 − 建立函式POWER_2()。
步驟6 − 間接遞迴呼叫函式POWER_1()。
步驟7 − 啟動函式main()。
步驟8 − 宣告並初始化變數。
步驟9 − 呼叫函式POWER_2()。
步驟10 − 使用fmt.Printf()在螢幕上列印結果。
示例
// GOLANG PROGRAM TO CALCULATE THE POWER USING RECURSION // Indirect Recursion example package main // fmt package provides the function to print anything import "fmt" // create a first Recursive function func POWER_1(num int, power int) int { var result int = 1 if power != 0 { // Recursive function call to the second function result = (num * POWER_2(num, power-1)) } return result } // create a second Recursive function func POWER_2(num int, power int) int { var result int = 1 if power != 0 { // Recursive function call to the first function // which calls this first function indirectly result = (num * POWER_1(num, power-1)) } return result } func main() { fmt.Println("Golang Program to calculate the power using recursion") // declare and initialize the integer variables var base int = 5 var power int = 2 var result int // calling the POWER_2() function result = POWER_2(base, power) // Print the result using in-built function fmt.Printf() fmt.Printf("%d to the power of %d is: %d\n", base, power, result) }
輸出
Golang Program to calculate the power using recursion 5 to the power of 2 is: 25
程式碼描述
在上面的程式中,我們首先宣告包main。
我們匯入了包含fmt包檔案的fmt包。
接下來,我們建立一個函式POWER_1(),使用間接遞迴技術計算冪。
我們將使用一個if條件語句,如果指定的條件為真,則允許執行一段程式碼,然後遞迴呼叫第二個函式POWER_2()。
接下來,我們建立一個函式POWER_2()。這裡對第一個函式進行了遞迴函式呼叫,間接呼叫了第一個函式POWER_1()。
現在啟動函式main()。GO程式執行從函式main()開始。
宣告整數變數base、power和result。
現在呼叫POWER_2()函式。
最後,使用內建函式fmt.Printf()在螢幕上列印結果。此函式在fmt包下定義,它有助於寫入標準輸出。
結論
在以上兩個例子中,我們已經成功編譯並執行了Go語言程式程式碼,使用遞迴技術計算冪。在第一個例子中,我們展示了直接遞迴方法,在第二個例子中,我們展示了間接遞迴方法。