Я не проверял «песочницу» до публикации этого задания - похоже, что это предложение было предложено Cᴏɴᴏʀ O'Bʀɪᴇɴ .
С учетом целочисленного ввода напишите программу, которая печатает загадку «четыре - магическое число»
- Четыре магическое число
- Пять четыре и четыре магическое число
- Шесть - это три, и три - это пять, и пять - это четыре, и четыре - это магическое число.
- Одиннадцать - шесть, шесть - три, три - пять, пять - четыре, четыре - магическое число.
- Пятьсот - одиннадцать, одиннадцать - шесть, шесть - три, три - пять, пять - четыре, четыре - магическое число
Если вы уже знаете загадку или слишком ленивы, чтобы ее разгадать, стремясь узнать, что это за загадка, вот объяснение
Следующее число - это количество букв в предыдущем номере. Так, например, пять имеет четыре буквы, поэтому следующее число - четыре .
шесть имеет три буквы, поэтому следующее число - 3 , а три - пять букв, поэтому следующее число - 5 , а пять - четыре буквы, поэтому следующее число - 4.
Причина, по которой загадка заканчивается на четыре, состоит в том, что четыре имеют четыре буквы и четыре - это четыре, а четыре - это четыре, а четыре - это четыре ... (четыре - это магическое число)
Тестовые случаи
0 =>
Zero is four and four is the magic number
1 =>
One is three and three is five and five is four and four is the magic number
2 =>
Two is three and three is five and five is four and four is the magic number
3 =>
Three is five and five is four and four is the magic number
4 =>
Four is the magic number
5 =>
Five is four and four is the magic number
6 =>
Six is three and three is five and five is four and four is the magic number
7 =>
Seven is five and five is four and four is the magic number
8 =>
Eight is five and five is four and four is the magic number
9 =>
Nine is four and four is the magic number
10 =>
Ten is three and three is five and five is four and four is the magic number
17 =>
Seventeen is nine and nine is four and four is the magic number
100 =>
One Hundred is ten and ten is three and three is five and five is four and four is the magic number
142 =>
One Hundred Forty Two is eighteen and eighteen is eight and eight is five and five is four and four is the magic number
1,000 =>
One Thousand is eleven and eleven is six and six is three and three is five and five is four and four is the magic number
1,642 =>
One Thousand Six Hundred Forty Two is twenty nine and twenty nine is ten and ten is three and three is five and five is four and four is the magic number
70,000 =>
Seventy Thousand is fifteen and fifteen is seven and seven is five and five is four and four is the magic number
131,072 =>
One Hundred Thirty One Thousand Seventy Two is thirty seven and thirty seven is eleven and eleven is six and six is three and three is five and five is four and four is the magic number
999,999 =>
Nine Hundred Ninety Nine Thousand Nine Hundred Ninety Nine is fifty and fifty is five and five is four and four is the magic number
правила
- Входные данные могут быть взяты из функции
STDIN
или в качестве аргумента функции - На входе будет положительное число от 0 до 999 999
- Вход будет содержать только цифры (будет следовать регулярному выражению
^[0-9]+$
) - Входные данные могут быть приняты как целое число или строка
- При преобразовании в строку слова пробелы и дефисы не должны учитываться при подсчете (100 [Сто] - это 10 символов, а не 11. 1,742 [Одна тысяча семьсот сорок два] - это 31 символ, а не 36).
- При преобразовании в строку 100 должно быть сто, а не сто или сто, 1000 должно быть тысяча, а не тысяча или тысяча.
- При преобразовании в строку 142 должна быть сто сорок две, а не сто и сорок два
- Выходные данные нечувствительны к регистру и должны соответствовать формату « N - это K, а K - это M, а M - это ... и четыре - это магическое число» (если не введено значение 4, в этом случае на выходе просто должно быть «четыре это волшебное число ")
- Выходные данные могут использовать числа вместо букв («5 - это 4, а 4 - это магическое число» вместо «пять - это четыре, а четыре - это магическое число»), если ваша программа всегда соответствует
- Вывод может быть либо возвращаемым значением функции, либо распечатан в
STDOUT
- Применяются стандартные лазейки
- Это код-гольф , поэтому выигрывает самая короткая программа в байтах. Удачи!
бонус
-30 байт, если программа работает, когда ввод находится в диапазоне от -999,999 до 999,999.
Отрицательные числа при преобразовании в слова просто имеют «отрицательные» перед ними. Например -4
, «Негативная четверка», Негативная четверка - двенадцать, двенадцать - шесть, шесть - три, три - пять, пять - четыре, четыре - магическое число
-150 байт, если программа не использует встроенные функции для генерации строкового представления числа
Leaderboard
Это фрагмент стека, который генерирует как таблицу лидеров, так и обзор победителей по языкам.
Чтобы убедиться, что ваш ответ появляется, пожалуйста, начните свой ответ с заголовка, используя следующий шаблон уценки
## Language Name, N bytes
Где N - размер вашего сообщения в байтах
Если вы хотите включить в заголовок несколько чисел (например, пролистать старые оценки или включить флаги в счетчик байтов), просто убедитесь, что фактическая оценка является последней цифрой в заголовке.
## Language Name, <s>K</s> X + 2 = N bytes