Golang 示例 - 数字或整数的反转

625 阅读2分钟

在这个程序中,你会看到有三个程序

第一个程序是对一个数字或整数进行反转,第二个程序是对用户输入的数字进行反转,第三个程序是使用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  

总结

在这个简短的教程中,你学到了不同的方法,通过从控制台获取输入并使用递归函数来逆转一个数字