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 次查看

开启您的 职业生涯

通过完成课程获得认证

开始
广告