Ruby Challenge: Calculating Factorials with Negative Numbers

Peter Kim Frank - Apr 25 '23 - - Dev Community

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
Enter fullscreen mode Exit fullscreen mode

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!.

#codenewbie

The most supportive community of programmers and people learning to code.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .