Ejercicios de Rust
Fibonacci Sequence in Rust
Build the Fibonacci numbers with a loop, a tuple swap and a vector.
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
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
- Start from 0 and 1.
- One tuple assignment moves both values.
- u64 holds much larger numbers than u32.
Ejemplo ejecutable de Rust
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]);
}
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
50th: 7778742049Practica
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.
Tu progreso está guardado en este navegador Inicia sesión para conservarlo en todos tus dispositivos.
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.
- Número de Fibonacci Devuelve el n-ésimo número de Fibonacci. Fácil
- Suma de términos pares de Fibonacci Suma los términos pares de Fibonacci que no superen un límite. Fácil