Wie kann ich kürzen:
p=gets.to_i
a=gets
b=gets.to_i
Wenn meine Eingabe eine Ganzzahl ist, gefolgt von einer Zeichenfolge, gefolgt von einer Ganzzahl?
Wie kann ich kürzen:
p=gets.to_i
a=gets
b=gets.to_i
Wenn meine Eingabe eine Ganzzahl ist, gefolgt von einer Zeichenfolge, gefolgt von einer Ganzzahl?
Antworten:
(Haftungsausschluss: Ich kenne Ruby nicht, aber das funktioniert mit TIO )
p,a,b=$*
p=p.to_i
b=b.to_i
28 26 Bytes statt 30 (danke an Snack für den Hinweis auf den $ * Trick)
Antworten sind normalerweise als Lambda-Funktionen zulässig, wobei Ihre Eingabe / Ausgabe die Parameter / Rückgabewerte des Lambdas sind.
->p,a,b{...}
Wenn Sie dies einer Variablen zuweisen, wird f
sie als aufgerufen
f[p,a,b]
Es ist im Allgemeinen in Ordnung, auch die Arten der Eingaben anzunehmen, aber um sicherzugehen, können Sie dies in Ihrer Antwort erwähnen.
Relevanter Metapost über akzeptable Eingabe- / Ausgabemethoden
Wenn Sie aus irgendeinem Grund ein vollständiges Programm mit stdin / stdout io benötigen, können Sie mit dem -n
Flag in kürzester Zeit einen Aufruf von gets.to_i
an verkürzen eval$_
:
p=eval$_
a=gets
b=gets.to_i
Das -n
Flag umgibt Ihren Code mit while gets ... end
, sodass das Programm eine Schleife ausführt, wenn mehr Eingaben bereitgestellt werden, als Ihr Programm verbraucht.