mirror of
https://github.com/TheAlgorithms/Ruby
synced 2024-12-26 21:58:56 +01:00
factorial non-recursive non-iterative feature implementation
This commit is contained in:
parent
e62c3bbb11
commit
9434ab9dc9
2 changed files with 45 additions and 0 deletions
|
@ -53,6 +53,7 @@
|
||||||
* [Ceil](https://github.com/TheAlgorithms/Ruby/blob/master/maths/ceil.rb)
|
* [Ceil](https://github.com/TheAlgorithms/Ruby/blob/master/maths/ceil.rb)
|
||||||
* [Ceil Test](https://github.com/TheAlgorithms/Ruby/blob/master/maths/ceil_test.rb)
|
* [Ceil Test](https://github.com/TheAlgorithms/Ruby/blob/master/maths/ceil_test.rb)
|
||||||
* [Decimal To Binary](https://github.com/TheAlgorithms/Ruby/blob/master/maths/decimal_to_binary.rb)
|
* [Decimal To Binary](https://github.com/TheAlgorithms/Ruby/blob/master/maths/decimal_to_binary.rb)
|
||||||
|
* [Factorial Non-recursive and Non-iterative](https://github.com/TheAlgorithms/Ruby/blob/master/maths/factorial_non_recursive_non_iterative.rb)
|
||||||
* [Fibonacci](https://github.com/TheAlgorithms/Ruby/blob/master/maths/fibonacci.rb)
|
* [Fibonacci](https://github.com/TheAlgorithms/Ruby/blob/master/maths/fibonacci.rb)
|
||||||
* [Find Max](https://github.com/TheAlgorithms/Ruby/blob/master/maths/find_max.rb)
|
* [Find Max](https://github.com/TheAlgorithms/Ruby/blob/master/maths/find_max.rb)
|
||||||
* [Find Min](https://github.com/TheAlgorithms/Ruby/blob/master/maths/find_min.rb)
|
* [Find Min](https://github.com/TheAlgorithms/Ruby/blob/master/maths/find_min.rb)
|
||||||
|
|
44
maths/factorial_non_recursive_non_iterative.rb
Normal file
44
maths/factorial_non_recursive_non_iterative.rb
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
# A ruby program to find factorial of a given integer
|
||||||
|
# Factorial of a given integer is defined as the product of all the positive integers less than or equal to the given integer
|
||||||
|
# Mathematical representation: n! = n * (n - 1) * (n - 2) * ... * 1
|
||||||
|
|
||||||
|
#
|
||||||
|
# Non-recursive approach
|
||||||
|
#
|
||||||
|
|
||||||
|
def factorial(number)
|
||||||
|
if number < 0
|
||||||
|
"Please check your input number! The given number is a negative number."
|
||||||
|
else
|
||||||
|
if number == 0
|
||||||
|
"The factorial of #{number} is 1."
|
||||||
|
else
|
||||||
|
"The factorial of #{number} is #{(1..number).inject(:*)}."
|
||||||
|
end
|
||||||
|
end
|
||||||
|
rescue
|
||||||
|
"Error: Please provide integer only!"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Valid inputs
|
||||||
|
puts factorial(0)
|
||||||
|
# The factorial of 0 is 1.
|
||||||
|
|
||||||
|
puts factorial(4)
|
||||||
|
# The factorial of 4 is 24.
|
||||||
|
|
||||||
|
puts factorial(10)
|
||||||
|
# The factorial of 10 is 3628800.
|
||||||
|
|
||||||
|
puts factorial(1)
|
||||||
|
# The factorial of 1 is 1.
|
||||||
|
|
||||||
|
puts factorial(-5)
|
||||||
|
# Please check your input number! The given number is a negative number.
|
||||||
|
|
||||||
|
# Invalid inputs
|
||||||
|
puts factorial("a")
|
||||||
|
# Error: Please provide integer only!
|
||||||
|
|
||||||
|
puts factorial("2")
|
||||||
|
# Error: Please provide integer only!
|
Loading…
Reference in a new issue