Como diminuir:
p=gets.to_i
a=gets
b=gets.to_i
Se minha entrada for um número inteiro, seguido por uma sequência, seguido por um número inteiro?
Como diminuir:
p=gets.to_i
a=gets
b=gets.to_i
Se minha entrada for um número inteiro, seguido por uma sequência, seguido por um número inteiro?
Respostas:
(aviso: não conheço Ruby, mas isso funciona no TIO )
p,a,b=$*
p=p.to_i
b=b.to_i
28 26 bytes em vez de 30 (obrigado ao Snack por apontar o truque $ *)
As respostas normalmente são permitidas como funções lambda, com sua entrada / saída sendo os parâmetros / valor de retorno do lambda, para que você possa fazer isso:
->p,a,b{...}
Se você atribuiu isso a uma variável f
, ela seria chamada como
f[p,a,b]
Geralmente, é bom assumir os tipos de entradas também, mas, para estar seguro, você pode mencioná-lo na sua resposta.
Meta post relevante sobre métodos aceitáveis de entrada / saída
Se você precisar de um programa completo com stdin / stdout io por algum motivo, o mais curto possível é usar o -n
sinalizador para encurtar uma chamada gets.to_i
para eval$_
:
p=eval$_
a=gets
b=gets.to_i
O -n
sinalizador envolve o código while gets ... end
, para que o programa faça um loop se mais entrada for fornecida do que o programa consome.