Як я можу скоротити:
p=gets.to_i
a=gets
b=gets.to_i
Якщо моє введення - це ціле число, за ним - рядок, а за ним - ціле число?
Як я можу скоротити:
p=gets.to_i
a=gets
b=gets.to_i
Якщо моє введення - це ціле число, за ним - рядок, а за ним - ціле число?
Відповіді:
(відмова: Я не знаю Рубі, але це працює на TIO )
p,a,b=$*
p=p.to_i
b=b.to_i
28 26 байт замість 30 (спасибі Snack за вказівку $ * трюку)
Відповіді, як правило, дозволяються як функції лямбда, вхід / вивід яких є параметрами / значенням повернення лямбда, тому ви можете це зробити:
->p,a,b{...}
Якщо ви призначили цю змінну, fвона буде називатися як
f[p,a,b]
Зазвичай чудово вважати і типи вхідних даних, але для безпечності ви можете згадати це у своїй відповіді.
Відповідне мета-повідомлення про прийнятні методи введення / виводу
Якщо вам потрібна повна програма зі stdin / stdout io з якоїсь причини, найкоротшим ви можете це скористатися -nпрапором, щоб скоротити один дзвінок gets.to_iна eval$_:
p=eval$_
a=gets
b=gets.to_i
-nПрапор оточує ваш код з while gets ... end, так що цикл програма буде , якщо більше вхід подається , ніж ваша програма споживає.