Ich habe Hunger. Lassen Sie uns etwas Mikrowelle. Geben Sie bei einer Zahleneingabe zwischen 1 und 4 Ziffern die Anzahl der Sekunden aus, die die Mikrowelle laufen soll.
Einzelheiten
Der Trick besteht darin, herauszufinden, ob der Benutzer Sekunden oder eine Kombination aus Sekunden und Minuten eingibt. Die Einsen und die Zehnerstellen sollten als Sekunden interpretiert werden und die Hunderter und Tausenderstellen sollten Minuten sein. Beispielsweise sollte der Wert 1234
als 12 Minuten, 34 Sekunden und 9876
98 Minuten, 76 Sekunden interpretiert werden. Tippen 130
und 90
beides sollte eine Garzeit von 90 Sekunden ergeben.
Hier sind einige andere Ein- und Ausgänge:
- 1 = 1
- 11 = 11
- 111 = 71
- 1111 = 671
- 9 = 9
- 99 = 99
- 999 = 639
- 9999 = 6039
Regeln
Das ist Code-Golf , also gewinnt das kürzeste Programm in Bytes. Standardlücken sind nicht erlaubt. Der Gewinner muss die richtige Antwort zurückgeben, wenn er eine Ganzzahleingabe von 1 bis 9999 erhält.
9876
?190
?Antworten:
Python 2 , 19 Bytes
Probieren Sie es online!
quelle
Japt , 6 Bytes
Testen Sie es online!
ìL
konvertiert zu Base-100 undì60
konvertiert zurück zu Base 60, was zu führtfloor(n/100)*60 + n%100
. Funktioniert auch mit Stunden (10000 -> 3600
die Anzahl der Sekunden in einer Stunde).quelle
C, C ++, Java, C #, D: 36 Byte
D: 35 Bytes
C: 28 Bytes
Zum ersten Mal habe ich eine Antwort so kurz!
D kann aufgrund des Golf-Template-Systems eine besondere Optimierung erfahren:
C hat eine spezielle Optimierung mit dem impliziten int:
Code zum Testen
In C (muss enthalten sein
stdio.h
):TIO Link
In C ++ (muss enthalten sein
iostream
):Probieren Sie es online!
In Java :
Probieren Sie es online!
In c #
In D (muss importieren
std.stdio
) (genau, ich habe keine Ahnung, wie man Arrays in D verwendet):TIO Link
quelle
foreach
in D, ich habe nur vergessen, wie man es leider verwendet)Pyth -
98 BytesWandelt die Eingabe in eine Zahl zur Basis 100 um und interpretiert diese als Zahl zur Basis 60.
Test Suite .
quelle
TI-Basic (Serie 83), 8 Byte
Benötigt OS Version 1.15 oder höher.
quelle
Gleichstrom , 10 Bytes
Probieren Sie es online!
Erklärung: in dc, wenn du etw drückst. auf dem Stapel geht es oben drauf
quelle
Bash bc + sed,
3028 Bytes-2 Bytes dank @seshoumara .
Probieren Sie es online!
Übernimmt die Eingabe von stdin. Ging zu einem kreativeren Ansatz über:
*60+
Fügt vor den letzten 1 oder 2 Ziffern ein und stellt ein0
vor den Anfang, um Eingaben mit nur 1 oder 2 Ziffern zu berücksichtigen. Das Ergebnis wird dann an übergebenbc
.quelle
-r
und verwenden\?
, können Sie 2 Bytes verlieren.C (gcc) , 50 Bytes
Probieren Sie es online!
quelle
f(t){return t%100+t/100*60;}
. Funktionen dürfen Eingaben als Argumente annehmen und über ihre Rückgabewerte ausgeben.f(i,x){x=i/100*60+i%100;}
f(i,x){x=i-i/100*40;}
Perl 5, 15 + 1 (-p) Bytes
Probieren Sie es online aus
quelle
Java 8, 13 Bytes
Port von @ovs 'erstaunlicher Python 2-Formel .
Probieren Sie es hier aus.
quelle
JavaScript, 21 Bytes
Probieren Sie es online!
quelle
J , 12 Bytes
Es ist die Python 2-Lösung von ovs, ausgedrückt in J. Sie besteht aus einem Haken und einer Gabel:
Probieren Sie es online!
quelle
60#.0 100#:]
.Batch, 23 Bytes
quelle
Haskell , 18 Bytes
Probieren Sie es online!
Anotha Hafen.
Punktfreie Lösung, 21 Bytes
quelle
Labyrinth , 19 Bytes
Probieren Sie es online!
Erläuterung
Die IP stößt dann auf eine Sackgasse und beginnt sich rückwärts zu bewegen. Wenn es das erreicht
/
, versucht es eine Division durch Null, die das Programm beendet.quelle
Gelee , 5 Bytes
Als monadischer Link (danke für das Heads-up, caird!):
Probieren Sie es online!
... oder als volles Programm:
Dies kann einfach auf 05AB1E portiert werden, also:
05AB1E , 5 Bytes
Probieren Sie es online!
Konvertiert einfach die eingegebene Ganzzahl in die Basis 100 und konvertiert dann das Ergebnis von der Basis 60 in eine Ganzzahl. Daher entspricht dies Eingabe% 100 + 60 * ⌊Eingang / 100⌋
quelle
Excel VBA, 29 Bytes
Anonyme VBE-Direktfensterfunktion, die Eingaben aus dem Bereich
[A1]
und Ausgaben in das VBE-Direktfenster übernimmt .quelle
APL (Dyalog) ,
1110 BytesProbieren Sie es online!
Wie?
0 100⊤
- in der Basis 100 codieren, an dem zweiten LSB anhalten und effektiv produzierenn ÷ 100, n % 100
.60⊥
- in der Basis 60 dekodierenquelle
PARI / GP , 16 Bytes
Einfach:
Leider ist diese schöne Methode einfach zu lang:
quelle
Aufdringlich ,
109 BytesKevin hat mich in meiner eigenen Sprache übervorteilt ... (mit dem Ansatz von ovs 'Antwort)
Probieren Sie es online!
10 Bytes
Probieren Sie es online!
11 Bytes
Für ein Byte mehr können wir den
Input % 100 + 60 * ⌊Input / 100⌋
Ansatz verwenden:Probieren Sie es online!
quelle
2dH/40*-#
. Noch nie in Pushy programmiert, aber es scheint eine ziemlich coole Sprache zu sein. :)05AB1E , 9 Bytes
Probieren Sie es online!
Erläuterung:
Wahrscheinlich gibt es einen Trick mit Basisumwandlungen, der in 05AB1E erzielt werden kann, aber ich konnte ihn nicht finden.
quelle
Bash, 20 Bytes
Probieren Sie es online aus
quelle
Retina , 11 Bytes
Probieren Sie es online!
Ein- und Ausgabe in unary . Die Testsuite konvertiert aus praktischen Gründen von und nach Dezimalstellen.
Diese Art der Basiskonvertierung für nur zwei Ziffern ist überraschend einfach in unary durchzuführen. Wir gleichen nur Läufe von 100
1
s ab und ersetzen sie durch 601
s. Alles, was übrig bleibt, entspricht den letzten beiden Stellen in der Dezimaldarstellung und bleibt unverändert.quelle
Alice , 19 Bytes
Probieren Sie es online!
Erläuterung
Schade, dass ich Divmod aus der Sprache entfernt habe, denke ich ...
Dies ist nur der übliche Rahmen für lineare Programme mit dezimaler E / A, die nur im Kardinalmodus (arithmetisch) ausgeführt werden.
quelle
Milchstraße , 10 Bytes
Verwendung:
./mw code.mwg -i 9999
Erläuterung:
quelle
R , 21 Bytes
Probieren Sie es online!
quelle
scan
da die meisten Antworten nur davon ausgehen, dass die Variable bereits definiert ist.Common Lisp, 34 Bytes
Probieren Sie es online!
Ein weiterer Port der @ovs-Formel .
quelle
REXX, 25 Bytes
(Nur eine andere Übersetzung von @ovs)
quelle
05AB1E , 7 Bytes
Probieren Sie es online!
Erläuterung
quelle
Symbolische Python , 66 Bytes
Probieren Sie es online!
Erläuterung
quelle