How to check if the sum of two halves of a number is equal in Swift

1 Answer

0 votes
import Foundation

func halvesSumEqual(_ n: Int) -> Bool {
    let s = String(abs(n))

    guard s.count % 2 == 0 else {
        return false
    }

    let half = s.count / 2
    let leftIndex = s.index(s.startIndex, offsetBy: half)

    let left = s[..<leftIndex]
    let right = s[leftIndex...]

    func sumDigits(_ part: Substring) -> Int {
        part.reduce(0) { $0 + Int(String($1))! }
    }

    return sumDigits(left) == sumDigits(right)
}

func main() {
    let nums = [123456, 123321, 123123, 123411, 1234321, 12321]

    for n in nums {
        print("\(n): \(halvesSumEqual(n))")
    }
}

main()



/*
run:

123456: false
123321: true
123123: true
123411: true
1234321: false
12321: false

*/

 



answered Dec 23, 2025 by avibootz
...