Golang 如何使用递归找到给定数字的逆序
在本教程中,我们将学习如何在Golang编程语言中找到给定数字的逆序。如果我们想要修改不适用于 For 循环的函数,递归函数更加合适。在本文中,我们将使用递归来实现这一目标。
解释
迭代1:
Number = 54678
Reverse of number = 0
Reverse of number = Reverse of number * 10 + Number % 10
= 0 + 54678 % 10
= 0 + 8
= 8
Number = Number / 10
= 54678 / 10
= 5467
迭代 2:
Number = 5467
Reverse of number = 8
Reverse of number = Reverse of number * 10 + Number % 10
= 8 * 10 + 5467 % 10
= 80 + 7
= 87
Number = Number / 10
= 5467 / 10
= 546
迭代 3:
Number = 546
Reverse of number = 87
Reverse of number = Reverse of number * 10 + Number % 10
= 87 * 10 + 546 % 10
= 870 + 6
= 876
Number = Number / 10
= 546 / 10
= 54
迭代 4:
Number = 54
Reverse of number = 876
Reverse of number = Reverse of number * 10 + Number % 10
= 876 * 10 + 54 % 10
= 8760 + 4
= 8764
Number = Number / 10
= 54 / 10
= 5
迭代 5:
Number = 5
Reverse of number = 8764
Reverse of number = Reverse of number * 10 + Number % 10
= 8764 * 10 + 5 % 10
= 87640 + 5
= 87645
Number = Number / 10
= 5 / 10
= 0
使用递归找出一个数的倒序
在这个示例中,我们将使用递归来找出倒序。我们将倒序的结果存储在一个全局变量中。
步骤
- 步骤1 - 声明变量来存储实际数字和倒序数字。
-
步骤2 - 以数字为参数调用递归函数。
-
步骤3 - 打印结果。
示例
package main
import (
// fmt package provides the function to print anything
"fmt"
)
// declaring the variable to store the reverse of the number
var reverseOfNumberGlobal = 0
func reverse(number int) int {
// returning if the number becomes zero
if number == 0 {
return 0
}
// finding reverse using mod and divide operator
reverseOfNumberGlobal = reverseOfNumberGlobal*10 + (number % 10)
// calling the function with a number as an argument
reverse(number / 10)
// returning the reverse
return reverseOfNumberGlobal
}
func main() {
// declaring the variable
var number, reverseOfNumber int
// initializing the variable
number = 54678
fmt.Println("Golang program to find the reverse of a number using a recursive function.")
fmt.Printf("The number is %d. \n", number)
// running for loop till the number becomes zero
reverseOfNumber = reverse(number)
// printing the result
fmt.Printf("The reverse is %d. \n", reverseOfNumber)
}
输出
Golang program to find the reverse of a number using a recursive function.
The number is 54678.
The reverse is 87645.
结论
这就是我们如何使用递归在Golang中找到一个数字的相反数。递归调用的次数等于数字的位数。要了解更多关于go的信息,您可以探索这些教程。