Golang程序 使用递归倒置句子
在本教程中,我们将学习如何在Go编程语言中使用递归来逆转一个句子。
递归是指一个函数通过直接或间接的方式调用自己。每个递归函数都有一个基本情况或基本条件,它是递归中最后的可执行语句,并停止进一步调用。递归继续进行,直到满足某些条件而阻止它。
下面是两个例子,显示了两种不同类型的递归:直接和间接。
通过使用直接递归方法,用递归来逆转一个句子
语法
Func recursion() {
recursion(); /* function calls itself */
}
func main() {
recursion();
}
算法
- 第1步– 导入软件包fmt
-
第2步 – 创建函数reversesentence ()
-
第3步 – 使用if条件来执行代码
-
第4步 – 递归调用该函数本身
-
第5步- -启动函数main()
-
第6步-调用函数reversesentence()
-
第7步- 使用fmt.Print()打印结果。
例子
Golang程序代码通过使用直接递归方法来反转一个句子。
// GOLANG PROGRAM TO REVERSE A SENTENCE USING RECURSION
package main
// fmt package provides the function to print anything
import "fmt"
// create the function reversesentence()
func reversesentence(input string) {
if len(input) == 0 {
return
}
// recursive call of the function itself
reversesentence(input[1:])
fmt.Print(string(input[0]))
}
func main() {
fmt.Println("GOLANG PROGRAM TO REVERSE A SENTENCE USING RECURSION")
// calling the function reversesentence()
fmt.Println("Entered sentence =")
var sentence string
sentence = "Taylor Swift is the best"
fmt.Println(sentence)
reversesentence(sentence)
// Print the result
}
输出
GOLANG PROGRAM TO REVERSE A SENTENCE USING RECURSION
Entered sentence =
Taylor Swift is the best
tseb eht si tfiwS rolyaT
代码的描述
- 在上面的程序中,我们首先声明包main
-
我们导入了fmt包,其中包括包fmt的文件。
-
接下来我们创建一个函数reversesentence(),使用递归技术来反转一个句子。
-
我们将使用一个if条件语句,它允许你执行一个代码块,如果它是假的,则递归调用函数本身。
-
现在启动函数main()
-
现在调用reversesentence()函数
-
最后使用fmt.Print()在屏幕上打印出反转句子。
通过使用间接递归方法用递归来反转一个句子
语法
func recursion_1() {
recursion_2()
}
func recursion_2(){
recursion_1()
}
func main() {
recursion_1();
}
算法
-
第1步– 导入软件包fmt
-
第2步 – 创建函数 reverse ()
-
第3步 – 使用if条件来执行代码
-
第4步 – 递归调用函数 reverse2()
-
第5步- -创建函数reverse2()
-
第6步- 递归调用函数reverse() 间接)
-
第7步 – 启动函数main()
-
第8步– 调用函数reverse()
-
第9步 – 使用fmt.Print()在屏幕上打印结果
例子
使用间接递归方法,用递归来反转一个句子的Golang程序代码
// GOLANG PROGRAM TO REVERSE A SENTENCE USING RECURSION
package main
// fmt package provides the function to print anything
import "fmt"
// create the function reverse()
func reverse(input string) {
if len(input) == 0 {
return
}
// recursive call of the function reverse2
reverse2(input[1:])
fmt.Print(string(input[0]))
}
func reverse2(n string) {
if len(n) == 0 {
return
}
// recursive call of the function the first function indirectly
reverse(n[1:])
fmt.Print(string(n[0]))
}
func main() {
fmt.Println("GOLANG PROGRAM TO REVERSE A SENTENCE USING RECURSION")
// calling the function reverse()
var sentence string
sentence = "Golang Solutions"
fmt.Println("Entered Sentence\n",sentence)
reverse2(sentence)
// Print the result
}
输出
GOLANG PROGRAM TO REVERSE A SENTENCE USING RECURSION
Entered Sentence
Golang Solutions
snoituloS gnaloG
代码的描述
- 在上面的程序中,我们首先声明包main
-
我们导入了fmt包,其中包括包fmt的文件。
-
接下来,我们创建了一个函数reverse(),使用递归技术逆转一个句子
-
我们将使用一个if条件语句,它允许你执行一个代码块,如果它是假的,则递归调用第二个函数reverse2()
-
接下来我们创建一个函数reverse2().这里对第一个函数进行递归调用,间接调用第一个函数reverse()
-
现在启动函数main()。GO程序的执行从函数main()开始。
-
接下来我们调用reverse()函数来逆转一个句子。
-
最后使用内置函数fmt.Print()在屏幕上打印出句子的反转。这个函数是在fmt包下定义的,它有助于编写标准输出。
总结
在上面的两个例子中,我们已经成功地编译并执行了Golang程序代码,使用递归技术反转一个句子。我们展示了直接和间接类型的递归方法。在第一个例子中,我们展示了直接递归方法,在第二个例子中,我们展示了间接递归方法。