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 - 比較 sum 和原始數字。如果 sum 和原始數字相等,則返回 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。現在我們建立一個函式來檢查給定的數字是否為強數。在這個函式中,首先,我們首先建立一個原始數字的副本並將 sum 初始化為 0。現在我們執行一個 while 迴圈來重複提取數字的最後一位,然後執行該數字的階乘並將階乘結果新增到 sum 中。然後函式檢查給定數字是否等於其各位數字階乘的和。如果是,則函式返回 true。否則,返回 false。
這就是我們如何檢查給定數字是否為強數。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言
C++
C#
MongoDB
MySQL
Javascript
PHP