Для решения задачи потребовалось разобраться в написании чисел в английском языке.
Условия задачи
Если записать числа от 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" при записи чисел соответствует правилам британского английского.
Описание работы программы
Чтобы не путаться с подсчетом букв, решил сначала написать небольшую шпаргалку. Как в ней видно, часть чисел пишутся одним словом, часть - составные, в том числе содержащие не только числа, но и союз "and".
В программе создал два массива с длинами чисел от 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 (когда необходима лишь небольшая подсказка) и последний, самый быстрый вариант решения.
В общем, добро пожаловать на канал))