Skip to content

Instantly share code, notes, and snippets.

@mredig
Created May 15, 2019 15:36
Show Gist options
  • Save mredig/3fdbde690c4aab6dea533a49cf429b99 to your computer and use it in GitHub Desktop.
Save mredig/3fdbde690c4aab6dea533a49cf429b99 to your computer and use it in GitHub Desktop.
separates an Int into each digit (signs negatives)
import Cocoa
extension Int {
func expandNumber() -> [Int] {
var input = self
var signed = false
if input < 0 {
input *= -1
signed = true
}
var rArray = [Int]()
var power = 1
var tResult = 0
repeat {
let pTen = Int(pow(10, Double(power)))
tResult = input % pTen
rArray.append(tResult)
power += 1
} while tResult != input
for index in (1..<rArray.count).reversed() {
rArray[index] -= rArray[index - 1]
}
if signed {
rArray.append(1)
} else {
rArray.append(0)
}
return rArray.reversed()
}
}
199.expandNumber()
100.expandNumber()
0.expandNumber()
562.expandNumber()
5280.expandNumber()
560.expandNumber()
(-532).expandNumber()
101.expandNumber()
10101.expandNumber()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment