Реализация формулы с факториалом на Ruby

компьютеры программирование

Необходимо реализовать формулу с факториалом на руби, пример факториала:
#! /usr/bin/env ruby
def factorial(n)
if n == 0
1
else
n * factorial(n - 1)
end
end

0.upto(16) do |n|
print(n, "! = ", factorial(n), "\n")
end
(с)википедия

Как вызывать это по одной строке? достаточно ли будет сказать
...
...10*factorial(n)
?

Примечание:
Код:

m=
while m!='ex' do
puts'Enter M or "ex" for exit'
m=gets.chomp
puts'Enter n'
n=gets.chomp.to_i
def factorial(n)
if n == 0
1
else
n * factorial(n - 1)
end
end
puts''
puts factorial(n)/(factorial(n-m.to_i)*factorial(m.to_i))
end

как заставить прогу завершать работу после того как m=='ex'? оно ещё просит ввести N (но независимо от результата завершает работу)
Ответы:
Должно быть так :
И 0 можно
if n == 0 тут ведь не с проста :)
Ну как бы я Ruby не знаю... но
чтобы заставить завершить нужно условие if m=='ex' then *завершить программу* (не знаю какая функция/процедура отвечает за это действие)
ну так естественно оно запрашивает N
puts'Enter n'
А вот насчет того, что завершает... это вы просто наверно забыли вписать что-то на подобие _getch() в C++ (либо Readln в паскале) - поищите аналог в справочнике либо в гугле


16 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.