Я попытался решить эту проблему, используя фактические слова и функцию len(). Я продолжаю получать 21224, но ответ 21124. Может кто-нибудь объяснить, почему? Вот проблема.Project Euler Prob 7 Python
Если числа от 1 до 5 записаны словами: один, два, три, четыре, пять, то есть 3 + 3 + 5 + 4 + 4 = 19 букв, используемых в общей сложности.
Если все цифры от 1 до 1000 (одна тысяча) включительно были записаны на словах, сколько букв будет использовано?
ПРИМЕЧАНИЕ. Не считайте пробелы или дефисы. Например, 342 (триста сорок два) содержит 23 буквы и 115 (сто пятнадцать) содержит 20 букв. Использование «и» при написании номеров соответствует британскому использованию.
one_nine='onetwothreefourfivesixseveneightnine'
ten_nineteen='teneleventwelvethirteenfourteenfifteensixteenseventeeneighteennineteen'
twenty_ninety_byten='twentythirtyfourtyfiftysixtyseventyeightyninety'
one_ninetynine_list=[one_nine*9,ten_nineteen,twenty_ninety_byten*10]
one_ninetynine=''.join(one_ninetynine_list)
onehundred_ninehundred_byonehundred_list=[one_nine,'hundred'*9]
onehundred_ninehundred_byonehundred=''.join(onehundred_ninehundred_byonehundred_list)
one_onethousand_list=[one_ninetynine*10,onehundred_ninehundred_byonehundred*100,'and'*891,'onethousand']
one_onethousand=''.join(one_onethousand_list)
print len(one_onethousand)
Когда я использую свой код в Python 2.7.11 он говорит num2words не существует. Может быть, он работает только в python 3? которые я не хочу использовать кстати. –
pip install num2words –