Выведите следующую таблицу:
一一得一
一二得二 二二得四
一三得三 二三得六 三三得九
一四得四 二四得八 三四十二 四四十六
一五得五 二五一十 三五十五 四五二十 五五二十五
一六得六 二六十二 三六十八 四六二十四 五六三十 六六三十六
一七得七 二七十四 三七二十一 四七二十八 五七三十五 六七四十二 七七四十九
一八得八 二八十六 三八二十四 四八三十二 五八四十 六八四十八 七八五十六 八八六十四
一九得九 二九十八 三九二十七 四九三十六 五九四十五 六九五十四 七九六十三 八九七十二 九九八十一
Или вы можете использовать первые три буквы в его английском слове, если некоторые языки не поддерживают китайские символы:
OneOneGetOne
OneTwoGetTwo TwoTwoGetFou
OneThrGetThr TwoThrGetSix ThrThrGetNin
OneFouGetFou TwoFouGetEig ThrFouTenTwo FouFouTenSix
OneFivGetFiv TwoFivOneTen ThrFivTenFiv FouFivTwoTen FivFivTwoTenFiv
OneSixGetSix TwoSixTenTwo ThrSixTenEig FouSixTwoTenFou FivSixThrTen SixSixThrTenSix
OneSevGetSev TwoSevTenFou ThrSevTwoTenOne FouSevTwoTenEig FivSevThrTenFiv SixSevFouTenTwo SevSevFouTenNin
OneEigGetEig TwoEigTenSix ThrEigTwoTenFou FouEigThrTenTwo FivEigFouTen SixEigFouTenEig SevEigFivTenSix EigEigSixTenFou
OneNinGetNin TwoNinTenEig ThrNinTwoTenSev FouNinThrTenSix FivNinFouTenFiv SixNinFivTenFou SevNinSixTenThr EigNinSevTenTwo NinNinEigTenOne
Вы можете выводить в любом приемлемом формате, например, обычный текст, разделенный пробелом / запятой / символом табуляции и символом новой строки, 2D-массив, в котором пустые места пусты или не существуют (место 2 * 1 пусто, поэтому в массив).
Код гольф, самый короткий код в байтах побеждает. Разрешается кодирование GBK, где каждый китайский символ использует 2 байта.
Таблица преобразования:
一 One
二 Two
三 Thr
四 Fou
五 Fiv
六 Six
七 Sev
八 Eig
九 Nin
十 Ten
得 Get
Ответы:
Stax , 66 знаков
Количество байтов зависит от кодировки, используемой для китайских символов.
Запускать и отлаживать онлайн!
объяснение
Альтернативная версия (Stax 1.0.6), 59 байт (от @recursive)
При этом используется функция, которая вдохновлена этим испытанием и включена только в Stax 1.0.6, которая предшествует заданию.
Версия ASCII
Эта версия создает массив индексов , а затем использует его для индекса строки китайских символов , чтобы избежать избыточных операций стеки (
c
,a
,n
) и множественной@
лет.объяснение
источник
Python 3 ,
151149146 байт-3 байта благодаря Роду .
Попробуйте онлайн!
источник
'\u200b'
(+2 байта) вместо пробела для точного выводаJavascript, 190 байт
источник
一十
но когда 15 или 16 или любое другое число, которое мы пропускаем一
?(_="得一二三四五六七八九十")=>eval("for(i=1;i<10;i++){for(t='',v=0;v<i;t+=_[++v]+_[i]+[...(v*i+'')].map((a,b,c)=>c.length>1&&b==0?(a>1?_[a]+'十':'十'):b==0?'得'+_[a]:_[a]).join``+' ');t")
. Я не слишком внимательно присматривался, но есть некоторые другие вещи, которые можно сыграть в гольф.Рубин , 166 байт
Попробуйте онлайн!
Лямбда, возвращающая двумерный массив строк.
источник
YaBasic ,
250242238 байтосновной ответ с Юникодом ?! Какая?
Анонимная функция и объявленная вспомогательная функция,
c(n)
которая не требует ввода и вывода в STDOUTПопробуйте онлайн!
источник
Python 3 , 196 байт
Попробуйте онлайн!
источник
二五一十九
二六一十二
два вида неправильныхc[(i*j%10)]
=>c[i*j%10]
?Сетчатка , 100 символов, 122 байта
Попробуйте онлайн! Объяснение:
Вставьте девять
_
с.Разверните до 9 строк от 1 до 9
_
с.(обратите внимание на завершающий пробел) Расширьте до 9 строк от 1 до i
_
s плюс i в виде цифры.Преобразуйте
_
s в десятичное и умножьте на i.Вставьте,
:
если ответ состоит из двух цифр. Это станетten
персонажем.Удалить ноль единиц.
Удалите
1
из,1:
если только не1:0
было удалено ноль.Вставить
0
для однозначных ответов; это станетget
персонажем.Исправь всех персонажей.
источник
JavaScript (Node.js) , 141/130 байт
Попробуйте онлайн!
источник
APL (Dyalog) ,
75100 символов,97122 байтаПопробуйте онлайн!
источник
Python 3 , 142 байта
Структура похожа на ОВС 146 байт ответа «ы, но средние сроки работы по-другому.
Попробуйте онлайн!
объяснение
Наиболее интересным является термин для числа десятков:
Обратите внимание, что
20>y!=10
означает20 > y and y != 10
,False
когда число десятков должно быть включено и вTrue
противном случае.False
имеет целочисленное значение0
иTrue
имеет целочисленное значение1
, поэтому, хотяn[y//10]
длина всегда равна одному символу, индекс[20>y!=10:]
эквивалентен[0:1]
(то есть «символ»), когда число десятков должно быть включено, и[1:1]
(т. е. «нет символов») в противном случае.Следующий термин,
легче понять; Обратите внимание, что:
得
十
得
может быть обработано после термина «десятки», потому что термин «десятки» всегда оценивается как пустая строка, когда есть得
Обратите внимание на конечные пробелы
Конечные пробелы, кратные десяти, немного растягивают спецификацию - как упоминалось в штанге , это можно сделать визуально идеальным, используя пробел нулевой ширины, но тогда вам также придется распаковать массивы, используя
print(*[...])
представленное пробел нулевой ширины. как литерал"\u200b"
при печати в массиве.источник
JavaScript, 190 байт
Я попробую сыграть в гольф позже.
источник
Рубин , 136 байт
Число байтов в UTF-8 должно составлять 128 байтов, при этом символы Хань считаются как 2 вместо 3.
Попробуйте онлайн!
X
как заполнитель для十
.X
для продуктов <10, лидирующих для "-надцать" продуктов и конечных нулей.X
символы Хань.источник
/// , 301 байт (GBK *)
Попробуйте онлайн!
* Спецификация явно разрешает преобразование GBK → Unicode.
источник
Pyth , 49 символов, 71 байт
Использует кодировку UTF-8. Попробуйте это онлайн здесь .
В следующем объяснении
?
символы заменяют правильные китайские символы - я слишком ленив, чтобы все выстроилось правильно ...источник