在Swift中的Tech數(shù)字
如果給定的數(shù)字包含偶數(shù)個(gè)數(shù)字,并且這些數(shù)字可以從中間分成兩個(gè)相等的部分。愛掏網(wǎng) - it200.com在分割數(shù)字后,將其求和并找出最終和的平方。愛掏網(wǎng) - it200.com如果平方等于和本身,則給定的數(shù)字是一個(gè)tech數(shù)字,否則不是。愛掏網(wǎng) - it200.com
示例演示
輸入
3025
輸出
Yes the given number is a tech number
Input
2341
輸出
No the given number is not a tech number
這里,3025是一個(gè)科技數(shù)字,因?yàn)?0+25 = 55 => (55)2 = 3025。愛掏網(wǎng) - it200.com而2341不是一個(gè)科技數(shù)字,因?yàn)?3+41 = 64 => (64)2 = 4096。愛掏網(wǎng) - it200.com
算法
第一步 - 從用戶那里獲取數(shù)字。愛掏網(wǎng) - it200.com
第二步 - 計(jì)算數(shù)字中的總位數(shù)。愛掏網(wǎng) - it200.com
第三步 - 檢查數(shù)字是否包含偶數(shù)位數(shù)。愛掏網(wǎng) - it200.com
第四步 - 如果是,則從中間將數(shù)字的位數(shù)分為兩個(gè)相等的部分。愛掏網(wǎng) - it200.com
第五步 - 將這兩個(gè)部分相加。愛掏網(wǎng) - it200.com
第六步 - 求和的平方。愛掏網(wǎng) - it200.com
第七步 - 如果和的平方等于原來的數(shù)字,則這個(gè)數(shù)字是一個(gè)科技數(shù)字。愛掏網(wǎng) - it200.com否則不是。愛掏網(wǎng) - it200.com
第八步 - 顯示輸出。愛掏網(wǎng) - it200.com
現(xiàn)在通過以下的Swift程序我們可以找到科技數(shù)字。愛掏網(wǎng) - it200.com
例子1:檢查給定的數(shù)字是否是一個(gè)科技數(shù)字
在以下的Swift程序中,我們將檢查給定的數(shù)字是否是一個(gè)科技數(shù)字。愛掏網(wǎng) - it200.com因此,我們將創(chuàng)建一個(gè)函數(shù),它接受一個(gè)參數(shù)并返回一個(gè)布爾值,表示給定的數(shù)字是否是一個(gè)科技數(shù)字。愛掏網(wǎng) - it200.com這個(gè)函數(shù)首先檢查給定數(shù)字中的總位數(shù)。愛掏網(wǎng) - it200.com如果位數(shù)是偶數(shù),則它將從中間將數(shù)字分成兩組,以便這兩組包含相同數(shù)量的位數(shù)。愛掏網(wǎng) - it200.com然后它將這兩組相加,然后找到和的平方。愛掏網(wǎng) - it200.com如果和的平方等于原來的數(shù)字,則這個(gè)數(shù)字是一個(gè)科技數(shù)字,否則不是。愛掏網(wǎng) - it200.com
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找到科技數(shù)字
在下面的Swift程序中,我們將找到從1到10000000(或N)之間的科技數(shù)字。愛掏網(wǎng) - it200.com因此,我們使用一個(gè)for?in循環(huán)從1到10000000遍歷每個(gè)數(shù)字,并檢查它是否是科技數(shù)字。愛掏網(wǎng) - it200.com如果當(dāng)前數(shù)字是科技數(shù)字,則在屏幕上顯示。愛掏網(wǎng) - it200.com否則,繼續(xù)下一個(gè)數(shù)字。愛掏網(wǎng) - it200.com
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)
}
}
輸出結(jié)果
Tech numbers between 1 to 10000000 are:
1
2025
3025
9801
10000
現(xiàn)實(shí)生活中的使用
技術(shù)數(shù)字的真實(shí)生活使用方式是:
- 技術(shù)數(shù)字被用于理解編程邏輯。愛掏網(wǎng) - it200.com
-
初學(xué)者使用它來理解循環(huán)的工作原理。愛掏網(wǎng) - it200.com
結(jié)論
這就是我們?nèi)绾卧赟wift中檢查一個(gè)數(shù)字是否是技術(shù)數(shù)字。愛掏網(wǎng) - it200.com它對(duì)于構(gòu)建編程邏輯很有用。愛掏網(wǎng) - it200.com使用上述方法,我們可以輕松找到技術(shù)數(shù)字。愛掏網(wǎng) - it200.com