Как все начиналось
Здравствуйте, хаброобщество.
Я молодой, начинающий программист в недавнем прошлом решил перейти на новый, для меня, язык программирования Ruby. Учить принялся по учебнику «Учись программировать» автора Криса Пайна. И в очередной главе, посвященной методам, наткнулся на интересную задачу:
Думаю, было бы очень полезно привести ещё один пример метода. Мы назовём его englishNumber. Он будет принимать число, например, 22, и возвращать его английское название (в данном случае, строку 'twenty-two'). Для начала, пусть он работает только с целыми числами от 0 до 100.
Имея некий опыт написания подобного рода программ, на других языках, принялся за реализацию задачи применительно к русскому языку, да и вообщем не столь важен сам язык вывода как важна реализация алгоритма.
Шаг первый, идея
Для примера возьмем число 1234567. Как известно нам еще со школьной скамьи любое число состоит из единиц, десятков, сотен, тысяч, десятков тысяч и тд. Между ними есть что то общее не так ли? Теперь вооружимся примером. Вот смотрите, есть сотни — 5 и есть сотни тысяч — 2 также есть десятки 6 и десятки тысяч 3, теперь когда у нас остались только единицы 7 им в соответствии имеются также единицы тысяч 4. То есть при увеличении числа единицы, десятки и сотни остаются неизменными, и очевидным становится то что изменяется лишь степень тысячи (тысяча, миллион, миллиард ...).Читать полностью »