Come accorciare:
p=gets.to_i
a=gets
b=gets.to_i
Se il mio input è un numero intero, seguito da una stringa, seguito da un numero intero?
Come accorciare:
p=gets.to_i
a=gets
b=gets.to_i
Se il mio input è un numero intero, seguito da una stringa, seguito da un numero intero?
Risposte:
(dichiarazione di non responsabilità: non conosco Ruby, ma funziona su TIO )
p,a,b=$*
p=p.to_i
b=b.to_i
28 26 byte anziché 30 (grazie a Snack per aver sottolineato il trucco $ *)
Le risposte sono in genere consentite come funzioni lambda con input / output come parametri / valore di ritorno di lambda, quindi puoi farlo:
->p,a,b{...}
Se lo si assegnasse a una variabile f
, verrà chiamato come
f[p,a,b]
In genere va bene assumere anche i tipi di input, ma per sicurezza puoi menzionarlo nella tua risposta.
Meta post rilevanti sui metodi di input / output accettabili
Se hai bisogno di un programma completo con stdin / stdout io per qualche motivo, il più breve che puoi fare è usare il -n
flag per abbreviare una chiamata gets.to_i
a eval$_
:
p=eval$_
a=gets
b=gets.to_i
Il -n
flag circonda il tuo codice while gets ... end
, quindi il programma eseguirà il ciclo se viene fornito più input di quello che il programma consuma.