Rust-Übungen

Fibonacci Sequence in Rust

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

  • Einsteiger
  • 2 Min. Lesezeit
  • 1 ausführbares Beispiel
Das lernst du
  • 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.

Das Wichtigste

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

Ausführbares Rust-Beispiel

Rust
Code ausführen →
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]);
}
Run-Button für dieses Beispiel erstellen Ergebnis der Ausführung
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
50th: 7778742049

Üben

Öffne das Beispiel im Online-Compiler, ändere einen Wert oder füge eine Zeile hinzu und sage die Ausgabe voraus, bevor du es ausführst. Bring den Code danach absichtlich zum Scheitern und lies die Meldung des Compilers.

Lektion fertig?

Markiere sie als gelernt, um deinen Fortschritt zu verfolgen.

Mit einer Challenge üben

Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.

Alle Challenges