如何在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的資訊,您可以瀏覽這些教程。

更新於:2023年1月11日

555 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.