Golang程序 使用递归查找G.C.D

在本教程中,我们将讨论如何编写一个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的整数。变量结果对应于计算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循环。