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。

這就是我們如何檢查給定數字是否為強數。

更新於: 2023年2月8日

191 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.