Nasıl kısaltabilirim:
p=gets.to_i
a=gets
b=gets.to_i
Girişim bir tamsayı, ardından bir dize ve bir tamsayı ise?
Nasıl kısaltabilirim:
p=gets.to_i
a=gets
b=gets.to_i
Girişim bir tamsayı, ardından bir dize ve bir tamsayı ise?
Yanıtlar:
(sorumluluk reddi: Ruby'yi bilmiyorum, ama bu TIO'da çalışıyor )
p,a,b=$*
p=p.to_i
b=b.to_i
28 30 yerine 26 bayt ($ * numarasına işaret ettiği için Snack'e teşekkürler)
Yanıtlara genellikle lambda işlevleri olarak giriş / çıkışınız lambda'nın parametreleri / dönüş değeri olarak izin verilir, böylece şunları yapabilirsiniz:
->p,a,b{...}
Bunu bir değişkene atadıysanız f
,
f[p,a,b]
Girişlerin türlerini de varsaymak genellikle iyidir, ancak güvenli olmak için cevabınızdan bahsedebilirsiniz.
Kabul edilebilir giriş / çıkış yöntemleri hakkında ilgili meta yayın
Tam bir programa ihtiyacınız varsa ile Stdin / stdout'u io nedense, yapabileceğiniz en kısa kullanmaktır -n
bir çağrı kısaltmak için bayrak gets.to_i
için eval$_
:
p=eval$_
a=gets
b=gets.to_i
-n
Bayrak kodunuzu çevreleyen while gets ... end
fazla giriş program tükettiğinden verilir, program irade döngü böylece.