在这个程序中,你会看到有三个程序
第一个程序是对一个数字或整数进行反转,第二个程序是对用户输入的数字进行反转,第三个程序是使用Go语言中的递归函数对数字进行反转。
要理解下面的程序,你必须了解Go语言的以下特点。
以下是一连串的步骤
- 给出一个输入数字,首先使用
strconv Itoa()函数将integer转换为String。 - 使用for循环遍历字符串中的每个数字字符,将每个数字追加到一个新的字符串中。
- 使用
strconv Atoi()函数将新的string转换为integer - 最后,向控制台打印新的整数,即数字的反向。
在Golang中倒转一个数字的程序示例
在这个程序中,Golang的代码是对一个给定的数字进行反转。
package main
import (
"fmt"
"strconv"
)
func ReverseNumber(number int) int {
strNumber := strconv.Itoa(number)
reverseStrNumber := ""
for length := len(strNumber); length > 0; length-- {
reverseStrNumber += string(strNumber[length-1])
}
reverseNum, error := strconv.Atoi(reverseStrNumber)
if error != nil {
fmt.Println("Failure to cast String to int")
}
return reverseNum
}
func main() {
fmt.Printf("Reverse of number(%d) is %d\n", 1213, ReverseNumber(1213))
fmt.Printf("Reverse of number(%d) is %d\n", 5874, ReverseNumber(5874))
}
当你编译并执行上述程序时,输出结果是
Reverse of number(1213) is 3121
Reverse of number(5874) is 4785
示例程序2:逆转一个由用户输入的数字
在这个程序中,程序通过控制台读取用户的输入,而不是固定的输入。
以下是一个从键盘控制台读取数字的反转程序
package main
import (
"fmt"
"strconv"
)
func ReverseNumber(number int) int {
strNumber := strconv.Itoa(number)
reverseStrNumber := ""
for length := len(strNumber); length > 0; length-- {
reverseStrNumber += string(strNumber[length-1])
}
reverseNum, error := strconv.Atoi(reverseStrNumber)
if error != nil {
fmt.Println("Failure to cast String to int")
}
return reverseNum
}
func main() {
var number int
fmt.Print("Enter number to reverse ")
fmt.Scanln(&number)
fmt.Printf("Reverse of number(%d) is %d\n", number, ReverseNumber(number))
}
当你编译并执行上述程序时,其输出结果是
Enter number to reverse 25
Reverse of number(25) is 52
Enter number to reverse 89754
Reverse of number(89754) is 45798
示例程序 3- 递归函数逆转数字
递归函数被调用来逆转一个数字。递归函数是在同一个函数中调用的。
package main
import (
"fmt"
)
func reverse(number int, outputNumber int) int {
if number != 0 {
outputNumber = outputNumber * 10
outputNumber = outputNumber + number%10
number = number / 10
} else {
return outputNumber
}
return reverse(number, outputNumber)
}
func main() {
var number int
fmt.Print("Enter number to reverse ")
fmt.Scanln(&number)
fmt.Printf("Reverse of number(%d) is %d\n", number, reverse(number, 0))
}
输出是
Enter number to reverse 98745
Reverse of number(98745) is 54789
Enter number to reverse 2541
Reverse of number(2541) is 1452
总结
在这个简短的教程中,你学到了不同的方法,通过从控制台获取输入并使用递归函数来逆转一个数字