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。
因此,这就是我们如何检查给定的数字是否是一个强数。