使用遞迴查詢給定數字的反轉的 Swift 程式


本教程將討論如何編寫 Swift 程式,使用遞迴查詢給定數字的反轉。

反轉數字是一個過程,其中數字的數字位置互換以反轉其順序。為了找到數字的反轉,我們使用遞迴方法。遞迴方法是一種方法,其中函式自身呼叫以完成指定的任務。

以下是相同內容的演示 -

輸入

假設我們的給定輸入是 -

MyVal = 278938

輸出

所需的輸出將是 -

Reverse number = 839872

方法 1

演算法

以下是演算法 -

步驟 1 - 建立一個遞迴函式。

步驟 2 - 設定基本條件以結束遞迴呼叫。

步驟 3 - 列印給定數字的個位數。

步驟 4 - 遞迴呼叫函式並找到剩餘數字。

步驟 5 - 繼續處理,直到數字減少到一位數。

示例

以下程式顯示瞭如何使用遞迴查詢給定數字的反轉。

import Foundation
import Glibc
func reverseNum(N: Int){
   if (N < 10){
      print(N)
   }
   else{
      print(N%10, terminator: "")
      reverseNum(N:N/10)
   }
}
var Num = 1234
print("Reverse of (Num) is ")
reverseNum(N: Num)

輸出

Reverse of (Num) is 
4321

在上面的程式碼中,我們建立了一個名為 reverseNum() 的遞迴函式。此函式用於透過自身呼叫來反轉給定數字 = 1234。因此,上面程式碼的工作原理如下 -

第一次呼叫 1234 -

reverseNum(N: 1234):
Print(1234%10) = 4
reverseNum(N:1234/10) = 123

第二次呼叫 123 -

reverseNum(N: 123):
Print(123%10) = 3
reverseNum(N:123/10) = 12

第三次呼叫 12 -

reverseNum(N: 12):
Print(12%10) = 2
reverseNum(N:12/10) = 1

第四次呼叫 1 -

reverseNum(N: 1):
Print(1%10) = 1
reverseNum(N:1/10) = 0 // Condition false loop end

因此,1234 的反轉是 4321。

方法 2

演算法

以下是演算法 -

步驟 1 - 建立一個遞迴函式。

步驟 2 - 設定基本條件以結束遞迴呼叫。

步驟 3 - 宣告一個名為 ext 的變數以從給定數字中提取個位數。

步驟 4 - 我們將 ext 新增到 res 變數。在這裡,在將 ext 數字新增到反轉數字之前,res 乘以 10。因為下一個數字總是新增到個位位置。

步驟 5 - 遞迴呼叫函式並反轉剩餘數字。

步驟 6 - 宣告一個變數來儲存我們要反轉的數字。

步驟 7 - 呼叫函式並將數字作為引數傳遞給函式。

步驟 8 - 列印輸出。

示例

以下程式顯示瞭如何使用遞迴查詢給定數字的反轉。

import Swift
import Foundation
var res = 0
func reverseNUM(num: Int)->Int{

   if (num == 0){
      return res
   }
   if (num > 0){
      let ext = num % 10
      res = res * 10 + ext
      _ = reverseNUM(num: num/10)
   }
   return res
}
var val = 8655454
print("Original Number: ", val)
print("Reverse number: ", reverseNUM(num:val))

輸出

Original Number:  8655454
Reverse number:  4545568

在上面的程式碼中,我們建立了一個名為 reverseNUM() 的遞迴函式。此函式用於透過自身呼叫來反轉給定數字 = 8655454。因此,上面程式碼的工作原理如下 -

第一次呼叫 8655454 -

reverseNUM(num: 8655454):
if (8655454 > 0){
   let ext = 8655454 % 10 = 4
   res = res * 10 + ext = 0 * 10 + 4 = 4
   reverseNUM(num: 8655454/10) = 865545
}

第二次呼叫 865545 -

reverseNUM(num: 865545):
if (865545 > 0){
   let ext = 865545 % 10 = 5
   res = res * 10 + ext = 4 * 10 + 5 = 45
   reverseNUM(num: 865545/10) = 86554
}
Till if(num>0) condition is false.

更新於: 2022-12-13

482 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.