Intermedio · par deslizante

Número de Fibonacci

F(0)=0, F(1)=1, F(n)=F(n−1)+F(n−2). Calcúlalo con un par deslizante — luego compara con la recursión exponencial de la lección 5.

Problema

Entrada: un entero n (0 ≤ n ≤ 45).

Salida: F(n), donde F(0) = 0 y F(1) = 1. (F(45) = 1.134.903.170 — el mayor que cabe en un int.)

Ejemplo:

EntradaSalida
1055
206765

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 — el par deslizante

Mantén dos variables a = 0, b = 1. Cada pasada: int t = a + b; a = b; b = t;. Después de n pasadas, a es F(n).

Pista 2 — ¿por qué no la recursión de la lección 5?

Fib(45) recursivo hace ~2.000 millones de llamadas. El par deslizante hace 45. La misma matemática, un coste exponencialmente distinto — eso es pensamiento algorítmico.

Solución (¡inténtalo primero!)
int n = int.Parse(Console.ReadLine());
int a = 0, b = 1;
for (int i = 0; i < n; i++) { int t = a + b; a = b; b = t; }
Console.WriteLine(a);

Has llegado al tope del set — vuelve a la lista o lee la lección 5 sobre cuándo la recursión SÍ es la herramienta correcta.