Swift程序 查找给定数字是否为强数

Swift程序 查找给定数字是否为强数

强数是一个特殊的数字,其数字的阶乘之和等于该数字本身。例如 –

数字=345

345! = 3!+ 4!+ 5! = 6 + 24 + 120 = 150

这里345不是一个强数,因为其数字的阶乘之和不等于数字本身。

数字=145

145! = 1!+ 4!+ 5! = 1 + 24 + 120 = 145

这里145是一个强数,因为其数字的阶乘之和等于数字本身。

在这篇文章中,我们将学习如何编写一个Swift程序来找出给定的数字是否为强数。

算法

  • 第1步 – 创建一个函数。

  • 第2步 – 创建一个原始数字的副本,初始化sum = 0。

  • 3步– 运行while,找出给定数字的最后一位数字。

  • 4步 – 现在找到给定数字的所有独立数字的阶乘。

  • 5步 – 将各个数字的阶乘相加,并将结果存储在sum变量中。

  • 第6步 – 比较和与原数。如果和与原数相等,则返回true。否则,返回false。

  • 第7步 – 创建一个测试变量来存储数字并将其传递给函数。

  • 8步 – 打印输出。

例子

以下是Swift程序,用于查找给定数字是否为强数。

import Foundation
import Glibc

// Function to check if te given number is strong or not
func CheckStrongNumber(num: Int) -> Bool {
   var originalNum = num
   var sum = 0

   // Finding the sum of the factorial 
   // of the digits of the given number
   while originalNum > 0 {

      // Calculating the factorial of the digit
      let lDigit = originalNum % 10
      var factorial = 1
      for x in 1...lDigit {
         factorial *= x
      }

      // Calculating the sum of the factorial 
      // of the digits of the given number
      sum += factorial
      originalNum /= 10
   }

   // Return true if the sum and the number is equal
   // Otherwise return false
   return sum == num
}

// Test case 1
let myInput = 345
if CheckStrongNumber(num: myInput) {
   print("YES! \(myInput) is a strong number.")
} else {
   print("NO! \(myInput) is not a strong number.")
}

// Test case 2
let myInput2 = 145
if CheckStrongNumber(num: myInput2) {
   print("YES! \(myInput2) is a strong number.")
} else {
   print("NO! \(myInput2) is not a strong number.")
}

输出

NO! 345 is not a strong number.
YES! 145 is a strong number.

结论

在上述代码中,我们有两个数字,分别是345和145。现在我们创建一个函数来检查给定的数字是否是强数字。在这个函数中,首先,我们先复制一个原始数字,并将总和初始化为0。现在我们运行一个while循环,重复提取数字的最后一位,然后对该数字进行阶乘,并将阶乘结果加入总和。然后,该函数检查给定的数字是否等于各数字的阶乘之和。如果是,则函数返回true。否则,返回false。

因此,这就是我们如何检查给定的数字是否是一个强数。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Swift 教程