Skip to content

Instantly share code, notes, and snippets.

@reyner
Last active September 17, 2016 00:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save reyner/c312f8dca7fc4b7fafb5a2786fa0c73f to your computer and use it in GitHub Desktop.
Save reyner/c312f8dca7fc4b7fafb5a2786fa0c73f to your computer and use it in GitHub Desktop.
FiveThirtyEight Riddler Express 9/16/16
countCharacters(1_000373_373373)
114 characters for 1000373373373 (one trillion three hundred seventy-three million three hundred seventy-three thousand three hundred seventy-three!)
countCharacters(1_023323_373373)
134 characters for 1023323373373 (one trillion twenty-three billion three hundred twenty-three million three hundred seventy-three thousand three hundred seventy-three!)
countCharacters(1_023373_373373)
135 characters for 1023373373373 (one trillion twenty-three billion three hundred seventy-three million three hundred seventy-three thousand three hundred seventy-three!)
countCharacters(1_073373_373373)
136 characters for 1073373373373 (one trillion seventy-three billion three hundred seventy-three million three hundred seventy-three thousand three hundred seventy-three!)
countCharacters(1_101323_373373)
137 characters for 1101323373373 (one trillion one hundred one billion three hundred twenty-three million three hundred seventy-three thousand three hundred seventy-three!)
countCharacters(1_101373_373373)
138 characters for 1101373373373 (one trillion one hundred one billion three hundred seventy-three million three hundred seventy-three thousand three hundred seventy-three!)
countCharacters(1_103323_373373)
139 characters for 1103323373373 (one trillion one hundred three billion three hundred twenty-three million three hundred seventy-three thousand three hundred seventy-three!)
countCharacters(1_103373_373373)
140 characters for 1103373373373 (one trillion one hundred three billion three hundred seventy-three million three hundred seventy-three thousand three hundred seventy-three!)
countCharacters(1_111373_373373)
141 characters for 1111373373373 (one trillion one hundred eleven billion three hundred seventy-three million three hundred seventy-three thousand three hundred seventy-three!)
var number = 0
let formatter = NumberFormatter()
let locale = Locale(identifier: "EN_us")
formatter.locale = locale
formatter.numberStyle = .spellOut
func countCharacters(_ input: Int, log: Bool = true) -> (Int, String) {
let spelledOutNumber = formatter.string(from: NSNumber(value: input))!
let characterCount = spelledOutNumber.characters.count + 1 // exclamation point
if log {
print("\(characterCount) characters for \(input) (\(spelledOutNumber)!)")
}
return (characterCount, spelledOutNumber)
}
var stop = false
repeat {
let (characterCount, spelledOutNumber) = countCharacters(number, log: false)
if characterCount > 140 {
stop = true
print("The first number that’s too long is \(number), or \n \(spelledOutNumber)!")
}
if characterCount > highest {
highest = characterCount
print("new highest: \(highest) (\(number) or \(spelledOutNumber)!)")
}
number += 1
} while !stop
new highest: 4 (1 or one)
new highest: 6 (3 or three)
new highest: 7 (11 or eleven)
new highest: 9 (13 or thirteen)
new highest: 10 (17 or seventeen)
new highest: 11 (21 or twenty-one)
new highest: 13 (23 or twenty-three)
new highest: 14 (73 or seventy-three)
new highest: 16 (101 or one hundred one)
new highest: 18 (103 or one hundred three)
new highest: 19 (111 or one hundred eleven)
new highest: 21 (113 or one hundred thirteen)
new highest: 22 (117 or one hundred seventeen)
new highest: 23 (121 or one hundred twenty-one)
new highest: 25 (123 or one hundred twenty-three)
new highest: 26 (173 or one hundred seventy-three)
new highest: 27 (323 or three hundred twenty-three)
new highest: 28 (373 or three hundred seventy-three)
new highest: 29 (1101 or one thousand one hundred one)
new highest: 31 (1103 or one thousand one hundred three)
new highest: 32 (1111 or one thousand one hundred eleven)
new highest: 34 (1113 or one thousand one hundred thirteen)
new highest: 35 (1117 or one thousand one hundred seventeen)
new highest: 36 (1121 or one thousand one hundred twenty-one)
new highest: 38 (1123 or one thousand one hundred twenty-three)
new highest: 39 (1173 or one thousand one hundred seventy-three)
new highest: 40 (1323 or one thousand three hundred twenty-three)
new highest: 41 (1373 or one thousand three hundred seventy-three)
new highest: 42 (3323 or three thousand three hundred twenty-three)
new highest: 43 (3373 or three thousand three hundred seventy-three)
new highest: 44 (11373 or eleven thousand three hundred seventy-three)
new highest: 45 (13323 or thirteen thousand three hundred twenty-three)
new highest: 46 (13373 or thirteen thousand three hundred seventy-three)
new highest: 47 (17373 or seventeen thousand three hundred seventy-three)
new highest: 48 (21373 or twenty-one thousand three hundred seventy-three)
new highest: 49 (23323 or twenty-three thousand three hundred twenty-three)
new highest: 50 (23373 or twenty-three thousand three hundred seventy-three)
new highest: 51 (73373 or seventy-three thousand three hundred seventy-three)
new highest: 52 (101323 or one hundred one thousand three hundred twenty-three)
new highest: 53 (101373 or one hundred one thousand three hundred seventy-three)
new highest: 54 (103323 or one hundred three thousand three hundred twenty-three)
new highest: 55 (103373 or one hundred three thousand three hundred seventy-three)
new highest: 56 (111373 or one hundred eleven thousand three hundred seventy-three)
new highest: 57 (113323 or one hundred thirteen thousand three hundred twenty-three)
new highest: 58 (113373 or one hundred thirteen thousand three hundred seventy-three)
new highest: 59 (117373 or one hundred seventeen thousand three hundred seventy-three)
new highest: 60 (121373 or one hundred twenty-one thousand three hundred seventy-three)
new highest: 61 (123323 or one hundred twenty-three thousand three hundred twenty-three)
new highest: 62 (123373 or one hundred twenty-three thousand three hundred seventy-three)
new highest: 63 (173373 or one hundred seventy-three thousand three hundred seventy-three)
new highest: 64 (323373 or three hundred twenty-three thousand three hundred seventy-three)
new highest: 65 (373373 or three hundred seventy-three thousand three hundred seventy-three)
new highest: 66 (1103323 or one million one hundred three thousand three hundred twenty-three)
new highest: 67 (1103373 or one million one hundred three thousand three hundred seventy-three)
new highest: 68 (1111373 or one million one hundred eleven thousand three hundred seventy-three)
new highest: 69 (1113323 or one million one hundred thirteen thousand three hundred twenty-three)
new highest: 70 (1113373 or one million one hundred thirteen thousand three hundred seventy-three)
new highest: 71 (1117373 or one million one hundred seventeen thousand three hundred seventy-three)
new highest: 72 (1121373 or one million one hundred twenty-one thousand three hundred seventy-three)
new highest: 73 (1123323 or one million one hundred twenty-three thousand three hundred twenty-three)
new highest: 74 (1123373 or one million one hundred twenty-three thousand three hundred seventy-three)
new highest: 75 (1173373 or one million one hundred seventy-three thousand three hundred seventy-three)
new highest: 76 (1323373 or one million three hundred twenty-three thousand three hundred seventy-three)
new highest: 77 (1373373 or one million three hundred seventy-three thousand three hundred seventy-three)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment