import Foundation
func incrementByOne(_ digits: inout [Int]) -> [Int] {
var carry = 1
for i in stride(from: digits.count - 1, through: 0, by: -1) {
digits[i] += carry
if digits[i] == 10 {
digits[i] = 0
carry = 1
} else {
carry = 0
break
}
}
if carry == 1 {
digits.insert(1, at: 0)
}
return digits
}
var digits = [9, 9, 9]
let incremented = incrementByOne(&digits)
print("Result: \(incremented.map { String($0) }.joined(separator: " "))")
/*
run:
Result: 1 0 0 0
*/