Fácil+ · acumulador
Factorial
n! = 1 × 2 × … × n. El sabor multiplicativo del acumulador — más una dura lección sobre lo pequeño que es un int.
Problema
Entrada: un entero n (0 ≤ n ≤ 12).
Salida: n! (12! = 479.001.600 — el mayor que cabe en un int de 32 bits).
Ejemplo:
| Entrada | Salida |
|---|---|
5 | 120 |
0 | 1 |
Tu solución
Entrada personalizada para "Probar mi entrada"
La corrección se ejecuta por completo en tu navegador contra pruebas ocultas. Tu código se guarda localmente mientras escribes. Ctrl+Enter corrige.
¿Atascado? Pistas
Pista 1 — multiplica, empezando en 1
long resultado = 1; y luego bucle resultado = resultado * i;. Empieza en 1, no en 0 — y 0! = 1 por definición, así que el bucle vacío lo resuelve.
Pista 2 — ¿por qué n ≤ 12?
13! = 6.227.020.800, mayor que int.MaxValue (2.147.483.647) — se desbordaría en silencio. Míralo ocurrir: ejecuta Console.WriteLine(479001600 * 13); en el playground.
Solución (¡inténtalo primero!)
int n = int.Parse(Console.ReadLine());
long resultado = 1;
for (int i = 2; i <= n; i++) resultado = resultado * i;
Console.WriteLine(resultado);
El techo de desbordamiento es la lección real — mira la trampa 2 de la lección 2. Siguiente: Pirámide de asteriscos.