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 中如何检查数字是否为技术数的方法。它有助于构建编程逻辑。使用上述方法,我们可以轻松找到技术数。