Нужна помощь в создании команды def fact(n)
для работы с пользователем. Мой скрипт отлично работает, когда я вводил что-то вроде «Ruby factorial.rb 5». Однако мне нужно, чтобы он запускался с подсказками. Сценарий должен запускать что-то вроде:Пользовательский ввод для создания факториала
puts 'Please input a non-negative integer:'
n = gets.chomp.to_i
puts "The factorial of #{n} is #{factorial}
Вот как выглядит мой код сейчас. Как я уже сказал, он работает. Это когда я добавляю n = gets.chomp.to_i
до def fact(n)
команды, я автоматически получать значение 1. Это не имеет значения, какой номер пользователь ставит, он всегда возвращает 1.
#!/user/bin/ruby
def fact(n)
if n==0
1
else
n * fact(n-1)
end
end
puts fact(ARGV[0].to_i)
Как сделать эту работу с пользовательский ввод? Я думаю, что у меня просто синтаксическая проблема, но я не знаю, как заставить ее работать.
Попробуйте 'puts 'Просьба ввести неотрицательное целое число', затем' n = gets.to_i', затем 'puts 'Факториал # {n} является # {fact (n)}" ' –
, вы здорово. спасибо –
Проверьте полный ответ, который я только что дал ниже. Он показывает вам, как делать обе вещи, о которых вы просите. –