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 中如何檢查數字是否為技術數的方法。它有助於構建程式設計邏輯。使用上述方法,我們可以輕鬆找到技術數。

更新於: 2023年9月8日

125 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告