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:

EntradaSalida
5120
01

Tu solución

Program.cs — 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.