Ваше сообщение даже не в формате, в котором задают вопрос, но, исходя из того, что вы написали, кажется, что вы спрашиваете, как изменить свой код, чтобы он принимал ввод для m и выводил результат.Мой ответ основан на этом предположении.
Чтобы получить ввод, используйте метод «get».Таким образом, вы можете заменить строку 'm = 20' на:
m = gets.to_f
'gets' принимает входные данные в виде строки, поэтому вам необходимо преобразовать их в числовое значение.to_f превращает строку в число с плавающей точкой.Вместо этого вы можете использовать to_i, если вам нужно целое число.
У вас есть строка R.to_i (2), и кажется, что вы хотите вывести это, но у вас есть две проблемы здесь.Прежде всего, что бы это ни создавало, оно только создает что-то в этой позиции и не меняет значение R, так что фактически оно фактически ничего не делает.Во-вторых, ruby может принимать цифры в исходном коде, написанном на разных основах, таких как десятичное, двоичное, шестнадцатеричное и т. Д., Но оно имеет только одно внутреннее представление, и вы не можете вывести цифру в двоичном виде.Для вашей цели вам нужно преобразовать ее в строку, соответствующую бинарному выражению.Для этого используйте метод to_s.Фактически, метод to_i не принимает аргумента.Удалите строку «R.to_i (s)» и замените строку «ставит R» на:
puts R.to_s(2)