Factorial recursivo e iterativo en Ruby
Anteriormente vimos el algoritmo del factorial en JavaScript. Ahora veamos cómo calcular el factorial de un número usando el lenguaje de programación Ruby.
Veremos dos formas de resolverlo, la primera utiliza un ciclo while (forma iterativa o con ciclos) y la segunda un enfoque recursivo o con recursión en donde la función se llama a sí misma.
Aquí puedes ver cómo comenzar a programar en Ruby si tienes Windows. Por cierto, aquí puedes calcular el factorial de un número online.
El factorial de un número es el resultado de multiplicar al mismo por los números menores a él, de uno en uno, hasta llegar a 1. Por ejemplo, el factorial de 4 es 24 ya que 4 x 3
es 12, 12 x 2
es 24 y 24 x 1
= 24.
Es decir, primero se multiplica 4 x 3, el resultado se multiplica por 2 y luego eso por 1. Así para cualquier número. Por regla general, el factorial de 1 y de 0 es 1, los matemáticos deben saber por qué.
Sin más que decir, aquí el código:
=begin
Programa en Ruby que calcula el factorial
de un número de manera iterativa
@author parzibyte
=end
def factorial(numero)
factorial = 1
while numero > 1 do
factorial = factorial * numero
numero -= 1
end
factorial
end
50.times do |numero|
puts "El factorial de #{numero} es #{factorial numero}"
end
La función recibe un número y hace un ciclo que se romperá cuando el número sea 1 o menor que 1. Dentro del ciclo restamos 1 al número, y vamos multiplicando a la variable factorial
por ese la variable numero
. Al terminar la función, se regresa el factorial
.
En el código de ejemplo también he incluido una forma de probarlo.
El enfoque que utiliza recursión es casi igual. La recursión se rompe cuando el número es menor o igual a 1.
De otra manera, la función se llama a sí misma pero cambiando el valor de número, o mejor dicho, la llama con el resultado de restarle 1 a numero
.
=begin
Programa en Ruby que calcula el factorial
de un número de manera recursiva
@author parzibyte
=end
def factorial(numero)
if numero <= 1
1
else
numero * factorial(numero - 1)
end
end
50.times do |numero|
puts "El factorial de #{numero} es #{factorial numero}"
end
Igualmente he incluido la forma de probarlo.
Después de descargarlos, simplemente navega (con la terminal) hasta donde se encuentren y ejecuta ruby archivo.rb
.
El día de hoy vamos a ver cómo restablecer la impresora térmica GOOJPRT PT-210 a…
Hoy voy a enseñarte cómo imprimir en una impresora térmica conectada por USB a una…
En este post voy a enseñarte a programar un servidor web en Android asegurándonos de…
En este post te quiero compartir un código de C++ para listar y cancelar trabajos…
Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…
Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…
Esta web usa cookies.