在Swift中的Tech数字
如果给定的数字包含偶数个数字,并且这些数字可以从中间分成两个相等的部分。在分割数字后,将其求和并找出最终和的平方。如果平方等于和本身,则给定的数字是一个tech数字,否则不是。
示例演示
输入
3025
输出
Yes the given number is a tech number
Input
2341
输出
No the given number is not a tech number
这里,3025是一个科技数字,因为30+25 = 55 => (55)2 = 3025。而2341不是一个科技数字,因为23+41 = 64 => (64)2 = 4096。
算法
第一步 - 从用户那里获取数字。
第二步 - 计算数字中的总位数。
第三步 - 检查数字是否包含偶数位数。
第四步 - 如果是,则从中间将数字的位数分为两个相等的部分。
第五步 - 将这两个部分相加。
第六步 - 求和的平方。
第七步 - 如果和的平方等于原来的数字,则这个数字是一个科技数字。否则不是。
第八步 - 显示输出。
现在通过以下的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)之间的科技数字。因此,我们使用一个for−in循环从1到10000000遍历每个数字,并检查它是否是科技数字。如果当前数字是科技数字,则在屏幕上显示。否则,继续下一个数字。
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中检查一个数字是否是技术数字。它对于构建编程逻辑很有用。使用上述方法,我们可以轻松找到技术数字。