ARGV juga dapat diakses sebagai $ * yang menghemat dua byte
Snack
4
@Snack Hehe, mainkan kiat jawaban :)
AdmBorkBork
6
Gunakan lambda
Jawaban biasanya diizinkan sebagai fungsi lambda dengan input / output Anda menjadi parameter / nilai pengembalian lambda, sehingga Anda dapat melakukan ini:
->p,a,b{...}
Jika Anda menetapkan ini ke variabel fmaka itu akan disebut sebagai
f[p,a,b]
Biasanya tidak masalah untuk mengasumsikan jenis input juga, tetapi untuk amannya Anda dapat menyebutkannya dalam jawaban Anda.
Jika Anda memerlukan program lengkap dengan stdin / stdout io karena alasan tertentu, yang terpendek yang dapat Anda lakukan adalah menggunakan -nbendera untuk mempersingkat satu panggilan gets.to_ike eval$_:
p=eval$_
a=gets
b=gets.to_i
The -nbendera mengelilingi kode Anda dengan while gets ... end, sehingga program akan loop jika lebih masukan disuplai dari mengkonsumsi program anda.
Jawaban:
Gunakan ARGV ($ *) dan penugasan massal
(penafian: Saya tidak tahu Ruby, tetapi ini bekerja pada TIO )
2826 byte, bukan 30 (terima kasih kepada Snack untuk menunjukkan trik $ *)sumber
Gunakan lambda
Jawaban biasanya diizinkan sebagai fungsi lambda dengan input / output Anda menjadi parameter / nilai pengembalian lambda, sehingga Anda dapat melakukan ini:
->p,a,b{...}
Jika Anda menetapkan ini ke variabel
f
maka itu akan disebut sebagaif[p,a,b]
Biasanya tidak masalah untuk mengasumsikan jenis input juga, tetapi untuk amannya Anda dapat menyebutkannya dalam jawaban Anda.
Meta post yang relevan tentang metode input / output yang dapat diterima
sumber
Jika Anda memerlukan program lengkap dengan stdin / stdout io karena alasan tertentu, yang terpendek yang dapat Anda lakukan adalah menggunakan
-n
bendera untuk mempersingkat satu panggilangets.to_i
keeval$_
:The
-n
bendera mengelilingi kode Anda denganwhile gets ... end
, sehingga program akan loop jika lebih masukan disuplai dari mengkonsumsi program anda.sumber