使用递归查找给定数字的反转的 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 次查看

开启你的 职业生涯

通过完成课程获得认证

开始
广告