Welcome to Ruby Tuesday, a weekly post where we explore the world of Ruby programming language. Today's challenge is all about modifying a factorial method in Ruby to handle negative input numbers.
In this code, the factorial
method takes a number n
as input and recursively calculates its factorial. The base case is when n
is 0, in which case the method returns 1. Otherwise, the method multiplies n
by the factorial of n-1
.
When we call factorial(5)
using the puts
method, it calculates the factorial of 5 (i.e., 5 * 4 * 3 * 2 * 1) and outputs the result, which is 120.
def factorial(n)
if n == 0
1
else
n * factorial(n-1)
end
end
puts factorial(5) # outputs 120
Challenge:
Modify the factorial
method to handle negative input numbers.
Put your Ruby skills to the test. Go!
Leave your solutions, thoughts, tricks, and questions in the comments below. And be sure to join us here on CodeNewbie Org next Ruby Tuesday for more exciting challenges and tips to enhance your Ruby skills!.
Top comments (3)
That's too easy ....
q&d off cause
Great answer.
What answer should it give when the input is
-5
? I assume-120
is correct?I've modified your answer to be more idiomatic.
By defining the method on
Integer
, I can now call5.factorial
or-5.factorial
.I can see there is room for re-factoring. Would it be clearer without the duplication?
Love this!