Як я можу скоротити:
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
, так що цикл програма буде , якщо більше вхід подається , ніж ваша програма споживає.