397 подписчиков

Решение 17 задачи проекта Эйлера: Счет букв в числительных

Для решения задачи потребовалось разобраться в написании чисел в английском языке.

Условия задачи

Если записать числа от 1 до 5 английскими словами (one, two, three, four, five), то используется всего 3 + 3 + 5 + 4 + 4 = 19 букв.

Сколько букв понадобится для записи всех чисел от 1 до 1000 (one thousand) включительно?

Примечание: Не считайте пробелы и дефисы. Например, число 342 (three hundred and forty-two) состоит из 23 букв, число 115 (one hundred and fifteen) - из 20 букв. Использование "and" при записи чисел соответствует правилам британского английского.

Описание работы программы

Числа от 1 до 1000 в английском языке
Числа от 1 до 1000 в английском языке

Чтобы не путаться с подсчетом букв, решил сначала написать небольшую шпаргалку. Как в ней видно, часть чисел пишутся одним словом, часть - составные, в том числе содержащие не только числа, но и союз "and".

Программа для решения задачи Эйлера #17
Программа для решения задачи Эйлера #17

В программе создал два массива с длинами чисел от 1 до 19 и для десятков 20... 30 ...90.

int numb_arr_1_19[] = {3,3,5,4,4,3,5,5,4,3,6,6,8,8,7,7,9,8,8};
int numb_arr_20_90[] = {6,6,5,5,5,7,6,6};

Далее перебираются числа до 1000 включительно и по определенным правилам с помощью нескольких ветвлений if-else подсчитываются буквы.

Думаю, все ясно из комментариев к коду.

Ответ на задачу:

Считает довольно быстро.

P.S. Изначальная цель блога - получить "фидбек" в комментариях, чтобы более опытные "кодеры" указывали мне на ошибки, советовали и всячески помогали в саморазвитии.

Также приглашаю всех на мой сайт)

На нем Вы можете посмотреть ответ на задачу Эйлера 17 (когда необходима лишь небольшая подсказка) и последний, самый быстрый вариант решения.

Подпишитесь) и заходите к нам еще)
Подпишитесь) и заходите к нам еще)

В общем, добро пожаловать на канал))