Ejercicios de Rust

Fibonacci Sequence in Rust

Build the Fibonacci numbers with a loop, a tuple swap and a vector.

  • Principiante
  • 2 min de lectura
  • 1 ejemplo ejecutable
Lo que aprenderás
  • A loop with two variables
  • (a, b) = (b, a + b)
  • Why u64
The first numbers
00
11
12
23
34
55
5 = 2 + 3

Each number is the sum of the two before

Each Fibonacci number is the sum of the two before it, starting from 0 and 1. Build the first numbers of the sequence in a vector.

a and b hold two neighbouring numbers. (a, b) = (b, a + b) moves both one step forward in a single assignment. u64 is used because Fibonacci numbers grow quickly: the 50th no longer fits in 32 bits.

Puntos clave

  1. Start from 0 and 1.
  2. One tuple assignment moves both values.
  3. u64 holds much larger numbers than u32.

Ejemplo ejecutable de Rust

Rust
Ejecutar código →
main.rs
fn fibonacci(count: usize) -> Vec<u64> {
    let mut sequence = Vec::with_capacity(count);
    let (mut a, mut b) = (0u64, 1u64);
    for _ in 0..count {
        sequence.push(a);
        (a, b) = (b, a + b);
    }
    sequence
}

fn main() {
    println!("{:?}", fibonacci(10));
    println!("50th: {}", fibonacci(50)[49]);
}
Obtén un botón Run para este ejemplo Resultado de ejecutar el código
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
50th: 7778742049

Practica

Abre el ejemplo en el compilador online, cambia un valor o añade una línea y predice la salida antes de ejecutarlo. Después rompe el código a propósito y lee el mensaje del compilador.

¿Terminaste esta lección?

Márcala como aprendida para seguir tu progreso.

Practica con un reto

Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.

Todos los retos