Ruby

Factorial iterativo y recursivo 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.

Factorial recursivo e iterativo en 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.

Antes de todo

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.

Factorial de un número

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

Factorial con ciclo while en Ruby

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.

Función recursiva para calcular factorial

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.

Descargar y ejercicios

Después de descargarlos, simplemente navega (con la terminal) hasta donde se encuentren y ejecuta ruby archivo.rb.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Tramitar acta de nacimiento en línea de manera instantánea

En este post te quiero compartir mi experiencia tramitando un acta de nacimiento de México…

59 min hace

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

2 semanas hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esta web usa cookies.