Algoritmo para Calcular el Factorial (N!) en PSeInt (Guía 2026)
El cálculo del factorial es un clásico de las matemáticas y la programación, esencial para entender probabilidad, estadística y algoritmos de permutación. Representado como N!, consiste en multiplicar un número por todos sus antecesores hasta llegar al 1 (ejemplo: 5! = 5*4*3*2*1 = 120). En este tutorial de Lógica de Programación con PSeInt, aprenderás a implementar este cálculo utilizando Ciclos (Bucles) y, lo más importante, comprenderás el concepto de Acumulador Multiplicativo, una técnica vital que diferencia a los programadores novatos de los intermedios.
Conceptos Clave: Acumuladores y Matemáticas
Antes de codificar, debemos aclarar dos reglas de oro que harán que tu algoritmo funcione correctamente:
A diferencia de las sumas, donde empezamos en 0, en una multiplicación acumulativa debemos empezar en 1. Si inicializas tu variable factorial <- 0, al multiplicar cualquier número, el resultado siempre será cero. El 1 es el elemento neutro de la multiplicación.
Por definición matemática estricta, el factorial de 0 es 1 (0! = 1). Un buen algoritmo debe ser capaz de manejar esta excepción lógica sin romperse.
Análisis del Algoritmo
El flujo para calcular N! sigue estos pasos estructurados:
- ENTRADA Solicitar un número entero positivo (N). Si el usuario ingresa negativos, el factorial no está definido (en los reales básicos).
-
PROCESO
1. Inicializar
resultado = 1.
2. Usar un ciclo (Para o Mientras) que vaya desde 1 hasta N.
3. En cada vuelta, actualizar:resultado = resultado * contador. - SALIDA Mostrar el valor final acumulado. Ej: "El factorial de 5 es 120".
Código Fuente (Solución con Ciclo Para)
Archivo: Factorial.pscDiagrama de Flujo
⚠️ Errores Comunes: Por qué tu código da Cero
El cálculo factorial tiene trampas específicas que debes evitar:
El error #1. Si escribes fact <- 0, la primera multiplicación será 0 * 1 = 0, y todo el resultado final será 0. En acumuladores de sumas se usa 0; en acumuladores de productos se usa 1.
Los factoriales crecen explosivamente. 10! es 3.6 millones. 20! es un número gigantesco. Si defines la variable como Entero, al calcular factoriales grandes (ej: >13), PSeInt podría dar error o números negativos extraños. Usa Real para mayor capacidad.
Reto: Validación Robusta y Ciclo Repetitivo
Vamos a profesionalizar el código. Esta versión usa un ciclo Repetir para asegurar que el usuario ingrese un número válido (no negativo) y maneja el caso especial del 0 de forma explícita.
Preguntas Frecuentes (FAQ)
¿Qué es la Recursividad en Factorial?
Factorial(n) = n * Factorial(n-1). PSeInt soporta subprocesos recursivos, pero los ciclos (iterativo) son más eficientes en memoria.¿Por qué el factorial de 0 es 1?
¿Cuál es el número más grande que puedo calcular?
170! es el límite para variables de tipo doble precisión (Real) antes de devolver "Infinito".¿Puedo usar el ciclo Mientras?
i=1 antes, y dentro del ciclo haces fact = fact * i y luego i = i + 1. El resultado es idéntico.¿Listo para el siguiente nivel?
Domina la lógica de programación con nuestra colección completa.
Ver Más Ejercicios Resueltos