使用递归方法求给定数的逆序的 Swift 程序

swiftserver side programmingprogramming更新于 2025/9/19 6:07:17

本教程将讨论如何编写 Swift 程序,使用递归方法求给定数的逆序。

逆序是指将数字的各位数字位置互换,从而反转其顺序。为了求逆序,我们使用递归方法。递归方法是一种函数调用自身来完成指定任务的方法。

以下是相同的演示 -

输入

假设给定的输入是 -

MyVal = 278938

输出

所需的输出将是 -

反向数字 = 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("(Num) 的逆操作为 ")
reverseNum(N: Num)

输出

(Num) 的逆操作为
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 // 条件为 false,循环结束

因此,1234 的逆运算结果为 4321。

方法 2

算法

算法如下 -

步骤 1 - 创建一个递归函数。

步骤 2 - 设置基本条件以结束递归调用。

步骤 3 - 声明一个名为 ext 的变量,用于从给定数字中提取个位数。

步骤 4 -我们将扩展数添加到 res 变量中。这里,在将扩展数添加到反转数之前,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("原始数字: ", val)
print("反转数字: ", reverseNUM(num:val))

输出

原始数字:8655454
反转数字: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.


相关文章



关于我们 | 隐私条款 | 学习路线
返回顶部