import Foundation
// ------------------------------------------------------------
// digitsToNumberJoin
// Converts digits to strings, joins them, then parses.
// Example: [1,2,3,4] → "1234" → 1234
// ------------------------------------------------------------
func digitsToNumberJoin(_ digits: [Int]) -> Int {
return Int(digits.map(String.init).joined())!
}
// ------------------------------------------------------------
// digitsToNumberMath
// Pure mathematical folding (no string operations).
// ------------------------------------------------------------
func digitsToNumberMath(_ digits: [Int]) -> Int {
var n = 0
for d in digits {
n = n * 10 + d
}
return n
}
// ------------------------------------------------------------
// digitsToNumberReduce
// Functional Swift style using reduce().
// ------------------------------------------------------------
func digitsToNumberReduce(_ digits: [Int]) -> Int {
return digits.reduce(0) { $0 * 10 + $1 }
}
// ------------------------------------------------------------
// Main
// ------------------------------------------------------------
let digits = [4, 6, 3, 9, 1, 2]
print("Using join(): \(digitsToNumberJoin(digits))")
print("Using math(): \(digitsToNumberMath(digits))")
print("Using reduce(): \(digitsToNumberReduce(digits))")
/*
run:
Using join(): 463912
Using math(): 463912
Using reduce(): 463912
*/