使用遞迴查詢最大公約數的Golang程式


在本教程中,我們將討論如何編寫一個 Golang 程式,使用遞迴查詢最大公約數 GCD。

兩個或多個數字的最大公約數 (GCD) 是能夠精確地整除它們的最大的公因子。它也稱為最大公因數 (HCF)。例如,15 和 10 的最大公因數是 5,因為這兩個數字都可以被 5 整除。

15/5 = 3
10/5 = 2

演算法

  • 步驟 1 − 匯入 fmt 包

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

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

  • 步驟 4 − 對函式本身進行遞迴呼叫

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

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

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

示例 1

// GOLANG PROGRAM TO FIND GCD USING RECURSION package main // fmt package provides the function to print anything import "fmt" // function prototype func main() { // declare the variables var n1 int var n2 int fmt.Println("Golang Program to find GCD using recursion") // initialize the variables n1 = 36 n2 = 60 // print the result using in-built function fmt.Println() fmt.Println("G.C.D OF", n1, n2,"is",hcf(n1,n2)) } // create the function hcf() func hcf(n1 int, n2 int) int { if (n2 != 0) { return hcf(n2, n1 % n2); } else { return n1; } }

輸出

Golang Program to find GCD using recursion
G.C.D OF 36 60 is 12

程式碼描述

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

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

  • 現在開始 main() 函式。GO 程式的執行從 main() 函式開始

  • 接下來,我們宣告並初始化整數變數 n1 和 n2

  • 現在建立 hcf() 函式

  • 我們將使用 if-else 條件語句來執行程式碼

  • 在程式碼行:return hcf(n2, n1 % n2) 中:此處函式自身呼叫自身,遞迴呼叫

  • 最後,使用內建函式 fmt.Println() 在螢幕上列印結果。此函式在 fmt 包中定義,有助於寫入標準輸出。

演算法

  • 步驟 1 − 匯入 fmt 包

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

  • 步驟 3 − 宣告並初始化變數

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

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

  • 步驟 6 − 對函式本身進行遞迴呼叫

  • 步驟 7 − 使用 fmt.Printf() 列印結果。

示例 2

// GOLANG PROGRAM TO FIND GCD USING RECURSION package main // fmt package provides the function to print anything import "fmt" func main() { // declare the variables var a int var b int var result int fmt.Println("Golang Program to find GCD using recursion") // initialize the variables a = 300 b = 60 result = gcd(a,b) // print the result using in-built function fmt.Printf() fmt.Printf("The GCD of %d and %d is %d.\n",a,b,result) } // create the function gcd() func gcd(a int,b int) int { for a != b { if b < a { return gcd(a - b,b) } else { return gcd(a,b - a) } } return a }

輸出

Golang Program to find GCD using recursion
The GCD of 300 and 60 is 60.

程式碼描述

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

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

  • 現在開始 main() 函式。GO 程式的執行從 main() 函式開始

  • 接下來,我們宣告並初始化整數變數 a、b 和 result

  • 變數“a”和“b”對應於要查詢其 GCD 的整數。變數 result 對應於計算 GCD 後的最終結果。

  • 現在建立 gcd() 函式

  • 我們將使用 for 迴圈和 if-else 條件語句來執行程式碼。for 迴圈用於檢查“a”和“b”變數的值是否都不相等。如果此條件為真,則執行迴圈。如果條件為假,則返回“a”的值。if-else 條件語句用於檢查“a”變數的值是否大於“b”變數的值。如果條件為真,則返回兩個整數變數值。否則,如果條件為假,則執行 else 語句並返回兩個整數變數的值。

  • 在程式碼行:return gcd(a - b,b):return gcd(a,b - a) 中:此處函式自身呼叫自身,遞迴呼叫

  • 最後,使用內建函式 fmt.Printf() 在螢幕上列印結果。此函式在 fmt 包中定義,有助於寫入標準輸出。

結論

在以上兩個示例中,我們已成功編譯並執行了 Golang 程式程式碼,使用遞迴技術查詢最大公約數 GCD。

我們使用 fmt println() 和 fmt.Println() 函式在輸出螢幕上列印結果。這裡我們展示瞭如何在 Go 語言中實現條件語句。我們在一個示例中使用了 if 條件,在另一個示例中使用了 for 迴圈。

更新於: 2022年10月25日

1K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告