Golang程序 使用递归计算功率
在本教程中,我们将学习如何使用Go编程语言中的递归技术来计算功率。
功率可以被定义为一个数字被它自己乘以特定的次数。
指数可以定义为一个数字在乘法中使用的次数。功率和指数是重写数学中长的乘法问题的重要工具,特别是在代数中。
例如:24=2×2×2×2=16,其中2是基数,4是指数。
递归是指一个函数通过直接或间接方式调用自己。每个递归函数都有一个基数或基数条件,它是递归中最后的可执行语句,并停止进一步的调用。
下面我们以两种不同的递归方法为例来说明。
例1:使用直接递归方法计算功率的Golang程序代码
语法
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:使用间接递归法计算功率的Golang程序代码
语法
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包下,它有助于编写标准输出。
总结
在上面的两个例子中,我们已经成功地编译并执行了Golang程序代码,使用递归技术计算功率。在第一个例子中我们展示了直接递归方法,在第二个例子中我们展示了间接递归方法。