Geben Sie die folgende Tabelle aus:
一一得一
一二得二 二二得四
一三得三 二三得六 三三得九
一四得四 二四得八 三四十二 四四十六
一五得五 二五一十 三五十五 四五二十 五五二十五
一六得六 二六十二 三六十八 四六二十四 五六三十 六六三十六
一七得七 二七十四 三七二十一 四七二十八 五七三十五 六七四十二 七七四十九
一八得八 二八十六 三八二十四 四八三十二 五八四十 六八四十八 七八五十六 八八六十四
一九得九 二九十八 三九二十七 四九三十六 五九四十五 六九五十四 七九六十三 八九七十二 九九八十一
Oder Sie können die ersten drei Buchstaben des englischen Wortes verwenden, falls einige Sprachen keine chinesischen Zeichen unterstützen:
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
Sie können in jedem vernünftigen Format ausgeben, z. B. durch Leerzeichen / Komma / Tabulator und Zeilenvorschub getrennter Nur-Text, 2D-Array, in dem leere Stellen leer sind oder nicht existieren (Die 2 * 1-Stelle ist leer, daher sollte nichts im Feld sein Array).
Code Golf, kürzester Code in Bytes gewinnen. GBK-Codierung ist zulässig, wobei jedes chinesische Zeichen 2 Byte verwendet.
Tabelle konvertieren:
一 One
二 Two
三 Thr
四 Fou
五 Fiv
六 Six
七 Sev
八 Eig
九 Nin
十 Ten
得 Get
Antworten:
Stax , 66 Zeichen
Die Anzahl der Bytes hängt von der für chinesische Zeichen verwendeten Kodierung ab.
Online ausführen und debuggen!
Erläuterung
Alternative Version (Stax 1.0.6), 59 Bytes (von @recursive)
Hierbei wird eine Funktion verwendet , die von dieser Herausforderung inspiriert ist und nur in Stax 1.0.6 enthalten ist, das die Herausforderung nachholt.
Die ASCII-Version ist
Diese Version baut das Index - Array und verwendet dann die Zeichenfolge der chinesischen Schriftzeichen zu indizieren redundante Stapeloperationen (um zu vermeiden
c
,a
,n
) und mehr@
s.Erläuterung
quelle
Python 3 ,
151149146 Bytes-3 Bytes dank Rod .
Probieren Sie es online!
quelle
'\u200b'
stattdessen ein Leerzeichen mit der Breite Null (+2 Byte) für eine exakte Ausgabe verwendenJavascript, 190 Bytes
quelle
一十
aber wann ist 15 oder 16 oder irgendeine andere Zahl, die wir weglassen一
?(_="得一二三四五六七八九十")=>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")
. Ich habe nicht zu genau hingeschaut, aber es gibt definitiv noch ein paar andere Dinge, die Sie golfen können.Ruby , 166 Bytes
Probieren Sie es online!
Ein Lambda, das ein 2D-Array von Zeichenfolgen zurückgibt.
quelle
Yabasic ,
250242238 BytesEine einfache Antwort mit Unicode-Zeichen ?! Was?
Eine anonyme Funktion und deklarierte
c(n)
Hilfsfunktion, die keine Ein- und Ausgaben für STDOUT akzeptiertProbieren Sie es online!
quelle
Python 3 , 196 Bytes
Probieren Sie es online!
quelle
二五一十九
二六一十二
zwei Arten von Unrechtc[(i*j%10)]
=>c[i*j%10]
?Retina , 100 Zeichen, 122 Bytes
Probieren Sie es online! Erläuterung:
Fügen Sie neun
_
s ein.Erweitern Sie auf 9 Zeilen von 1 bis 9
_
s.(Leerzeichen am Ende beachten) Erweitern Sie das Feld auf 9 Zeilen von 1 bis i
_
s plus i als Ziffer.Wandle das
_
s in eine Dezimalzahl um und multipliziere es mit i.Fügen Sie ein ein,
:
wenn die Antwort zweistellig ist. Dies wird derten
Charakter.Löschen Sie keine Einheiten.
Löschen Sie das
1
von, es1:
sei denn,1:0
die Null wurde entfernt.Inser a
0
für einstellige Antworten; Dies wird derget
Charakter.Repariere alle Charaktere.
quelle
JavaScript (Node.js) , 141/130 Byte
Probieren Sie es online!
quelle
APL (Dyalog) ,
75100 Zeichen,97122 ByteProbieren Sie es online!
quelle
Python 3 , 142 Bytes
Die Struktur ähnelt der 146-Byte-Antwort von ovs , die Mittelbegriffe funktionieren jedoch anders.
Probieren Sie es online!
Erläuterung
Der interessanteste Begriff ist der Begriff für die Anzahl der Zehner:
Beachten Sie, dass dies
20>y!=10
bedeutet20 > y and y != 10
,False
wann die Anzahl der Zehner eingeschlossen werden soll undTrue
ansonsten.False
hat einen ganzzahligen Wert von0
undTrue
einen ganzzahligen Wert von1
. Währendn[y//10]
also immer ein Zeichen lang ist, ist der Index[20>y!=10:]
äquivalent zu[0:1]
(dh "das Zeichen"), wenn die Anzahl der Zehner eingeschlossen werden soll, und[1:1]
(dh "keine Zeichen") ansonsten.Der folgende Begriff,
ist leichter zu verstehen; beachten Sie, dass:
得
十
得
kann nach dem 'Zehner'-Term behandelt werden, da der' Zehner'-Term immer eine leere Zeichenfolge ergibt, wenn es einen gibt得
Hinweis zu Leerzeichen
Die nachgestellten Leerzeichen für ein Vielfaches von zehn erweitern die Spezifikation geringfügig - wie von rod erwähnt , könnte dies durch die Verwendung eines Leerzeichens mit der Breite Null optisch perfektioniert werden. Dann müssten Sie jedoch auch die Arrays mit
print(*[...])
der Breite Null entpacken, da das Leerzeichen dargestellt wird als Literal,"\u200b"
wenn es in einem Array gedruckt wird.quelle
JavaScript, 190 Byte
Ich werde später versuchen, Golf zu spielen.
quelle
Rubin , 136 Bytes
Die Byteanzahl in UTF-8 sollte 128 Bytes betragen, wobei Han-Zeichen als 2 statt als 3 gezählt werden.
Probieren Sie es online!
X
einen Platzhalter für getrennt werden十
.X
Produkte <10 zu löschen, führende für "-teen" -Produkte und nachgestellte Nullen.X
in Han-Zeichen.quelle
/// , 301 Bytes (GBK *)
Probieren Sie es online!
* Die Spezifikation erlaubt ausdrücklich die GBK → Unicode-Konvertierung.
quelle
Pyth , 49 Zeichen, 71 Bytes
Verwendet UTF-8-Codierung. Probieren Sie es hier online aus .
In der folgenden Erklärung sind die
?
Zeichen Ersatz für die richtigen chinesischen Zeichen - ich bin zu faul, um alles richtig auszurichten ...quelle