Einführung
Sie müssen eine Funktion erstellen, um griechische Ziffern in arabische Ziffern umzuwandeln. Die Eingabe ist eine griechische Zahl, die kleiner 1000
und größer als ist 0
. Dies ist die Umkehrung meiner vorherigen Herausforderung .
Algorithmus
- Split Eingang in Buchstaben (zB
ΡΚΓ
->Ρ
,Κ
,Γ
) - Nehmen Sie jeden Buchstaben und Änderung Charakter gefunden unten in der Tabelle, für Briefsymbol (zB
ΡΚΓ
->Ρ
,Κ
,Γ
->100
,20
,3
). - In (zB
ΡΚΓ
->Ρ
,Κ
,Γ
->100
,20
,3
->123
)
Spezifikationen
- Keine eingebaute Konvertierung des Zahlensystems
- Die Eingabe wird wie im Beispiel aktiviert.
- Die Ausgabe muss in Basis 10 erfolgen.
ΡΡΡΡ
Wird nie passieren. Es wird seinΥ
.
Testfälle
ΡΚΓ -> 123
Η -> 8
ΨΟΖ -> 777
Ρ -> 100
ΧϜ -> 606
ΡϘ -> 190
ΜΒ -> 42
Ν -> 50
Tabelle
Α = 1 = Alpha = 913 UTF-8
Β = 2 = Beta = 914 UTF-8
Γ = 3 = Gamma = 915 UTF-8
Δ = 4 = Delta = 916 UTF-8
Ε = 5 = Epsilon = 917 UTF-8
Ϝ = 6 = DiGamma = 988 UTF-8
Ζ = 7 = Zeta = 918 UTF-8
Η = 8 = Eta = 919 UTF-8
Θ = 9 = Theta = 920 UTF-8
Ι = 10 = Iota = 921 UTF-8
Κ = 20 = Kappa = 922 UTF-8
Λ = 30 = Lambda = 923 UTF-8
Μ = 40 = Mu = 924 UTF-8
Ν = 50 = Nu = 925 UTF-8
Ξ = 60 = Xi = 926 UTF-8
Ο = 70 = Omicron = 927 UTF-8
Π = 80 = Pi = 928 UTF-8
Ϙ = 90 = Koppa = 984 UTF-8
Ρ = 100 = Rho = 929 UTF-8
Σ = 200 = Sigma = 931 UTF-8
Τ = 300 = Tau = 932 UTF-8
Υ = 400 = Upsilon = 933 UTF-8
Φ = 500 = Phi = 934 UTF-8
Χ = 600 = Chi = 935 UTF-8
Ψ = 700 = Psi = 936 UTF-8
Ω = 800 = Omega = 937 UTF-8
Ϡ = 900 = SamPi = 992 UTF-8
code-golf
number
natural-language
conversion
Niemand ist hier
quelle
quelle
ΡΡΡΡ
? Wenn ja, was wäre das Ergebnis?180
,42
und50
.Antworten:
Gelee ,
4745 BytesProbieren Sie es online aus! oder überprüfen Sie alle Testfälle .
quelle
<newline>Ç€
am Ende ein zu vermissen .Ç€
, das die Funktion auf alle Testfälle anwendet. Der erste Link zeigt das eigentliche Programm, das 44 Bytes lang ist.Python 3, 112
4 Bytes dank Vaultah gespeichert.
Booyah schlägt JS!
Mit Testfällen:
Durchläuft die Zeichenfolge und berechnet anhand ihres Index in der Liste der potenziellen Zeichen, wie viel sie wert ist.
quelle
JavaScript (ES7), 115 Byte
quelle
Haskell,
116113 BytesAnwendungsbeispiel:
map f ["ΡΚΓ","Η","ΨΟΖ","Ρ","ΧϜ","ΡϘ","ΜΒ","Ν"]
->[123,8,777,100,606,190,42,50]
.Suchen Sie den Wert des griechischen Buchstabens aus einer Liste von Paaren
(letter, value)
und Summen. Die Liste der Werte wird von erstellt(*)<$>[1,10,100]<*>[1..9]
, wobei(*)<$>[1,10,100]
eine Liste von Funktionen[(*1),(*10),(*100)]
(multipliziert mit 1, 10 und 100) erstellt wird, die separat auf die Elemente[1..9]
einer einzelnen Liste angewendet und zu einer einzigen Liste verkettet werden.Edit: 3 Bytes dank @xnor.
quelle
(*)<$>[1,10,100]<*>[1..9]
.<*>
im Listenkontext . Ich denke selbst nie daran. Vielen Dank!Julia,
8270 BytesProbieren Sie es online aus!
quelle
JavaScript (ES6), 116 Byte
Nur 1 Byte länger als ES7!
quelle
+"e"
?9+"e"+2
und dann+("9e2")
wird das 900.Python 3, 188 Bytes
Versuch es! (Testfälle enthalten)
quelle
def f(x):r=list(range(1,10));R=[a*10for a in r];return sum(b*(a in x)for a,b in zip("ΑΒΓΔΕϜΖΗΘΙΚΛΜΝΞΟΠϘΡΣΤΥΦΧΨΩϠ",r+R+[a*10for a in R]))
.Netzhaut , 72 Bytes
Probieren Sie es online aus.
Erläuterung
Grundsätzlich - ersetzen Sie jedes griechische Symbol durch die Zahl, die es darstellt, und geben Sie dann die Summe aller resultierenden Zahlen zurück:
Transliterate
10
s Ziffern ins Arabische und100
s Ziffern ins lateinische Alphabet (0
-9
=>a
-j
):Fügen Sie "aa" an beliebige
100
Ziffern an:Fügen Sie "0" an alle
10
Ziffern an:Transliterate
1
's Ziffern und lateinisches Alphabet ins Arabische:Konvertieren Sie alle durch Leerzeichen getrennten Dezimalzahlen in unäre:
Zählen Sie die Gesamtzahl der unären
1
s:quelle