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。
因此,这就是我们如何检查给定的数字是否是一个强数。
版权声明:本页面内容旨在传播知识,为用户自行发布,若有侵权等问题请及时与本网联系,我们将第一时间处理。E-mail:284563525@qq.com