如何在Go语言中使用递归查找给定数字的反转?
在本教程中,我们将学习如何在Go编程语言中找到给定数字的反转。如果我们想修改`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.
结论
这就是我们在Go语言中使用递归查找数字反转的方法。递归调用的次数等于数字的位数。要了解更多关于Go的信息,您可以浏览这些教程。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP