Swift 中的技術數
如果給定的數字包含偶數個數字,並且數字的數字可以從中間分成兩個相等的部分。劃分數字後,將劃分的數字加起來,並找到最終和的平方。如果平方等於和本身,則給定的數字是技術數,否則不是。
示例演示
輸入
3025
輸出
Yes the given number is a tech number
輸入
2341
輸出
No the given number is not a tech number
這裡,3025 是一個技術數,因為 30 + 25 = 55 => (55)2 = 3025。而 2341 不是技術數,因為 23 + 41 = 64 => (64)2 = 4096。
演算法
步驟 1 − 從使用者那裡獲取數字。
步驟 2 − 統計數字中存在的總位數。
步驟 3 − 然後檢查數字是否包含偶數個數字。
步驟 4 − 如果是,則將數字的數字從中間分成兩等份。
步驟 5 − 然後將兩部分相加。
步驟 6 − 求和的平方。
步驟 7 − 如果和的平方等於原始數字,則該數字是技術數。否則不是。
步驟 8 − 顯示輸出。
現在使用以下 Swift 程式,我們可以找到技術數。
示例 1:檢查給定數字是否為技術數
在以下 Swift 程式中,我們將檢查給定數字是否為技術數。為此,我們將建立一個函式,該函式接受一個引數並返回一個布林值,該值表示給定數字是否為技術數。此函式首先檢查給定數字中的總位數。如果位數是偶數,則將其從中間分成兩組,以便兩組包含相同數量的位數。然後它將兩組相加,然後求和的平方。如果和的平方等於原始數字,則該數字是技術數,否則不是。
import Foundation import Glibc // Function to check if the number is tech number or not func checkTechNumber(num: Int) -> Bool { var number = num var digits = 0 while number > 0 { digits += 1 number /= 10 } // If number contain even digits // then check the given number is tech number or not if digits % 2 == 0 { number = num // Dividing digits of number into two set from the // middle with exact number of digits in each set let firstHalf = number % Int(pow(10, Double(digits / 2))) let secondHalf = number / Int(pow(10, Double(digits / 2))) // Adding both the set let sum = firstHalf + secondHalf // Fiding the square of the sum let square = Int(pow(Double(sum), 2)) // If the square is equal to the number then retrun true return num == square } else { return false } } let myNumber = 2025 if (checkTechNumber(num:myNumber) == true) { print("\(myNumber) is a tech number.") } else { print("\(myNumber) is not a tech number.") }
輸出
2025 is a tech number.
示例 2:查詢 1 到 N 之間技術數
在以下 Swift 程式中,我們將查詢 1 到 10000000 或 N 之間技術數。為此,我們從 1 到 10000000 執行一個 for-in 迴圈,並檢查每個數字是否為技術數。如果當前數字是技術數,則在螢幕上顯示它。否則,移至下一個數字。
import Foundation import Glibc print("Tech numbers between 1 to 10000000 are:") for number in 1...10000000{ // Dividing the digits of the number into two equal parts let firstHalf = number % 100 let secondHalf = number / 100 // Find the sum of the two parts let sum = firstHalf + secondHalf // Find the square of the sum let square = Int(pow(Double(sum), 2)) // Check if the square is equal to the number if number == square { print(number) } }
輸出
Tech numbers between 1 to 10000000 are: 1 2025 3025 9801 10000
現實生活中的應用
技術數的現實生活中的應用是
技術數用於理解程式設計邏輯。
初學者使用它來了解迴圈的工作原理。
結論
因此,這就是我們在 Swift 中如何檢查數字是否為技術數的方法。它有助於構建程式設計邏輯。使用上述方法,我們可以輕鬆找到技術數。