แบบฝึกหัด Rust

Fibonacci Sequence in Rust

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

  • ระดับเริ่มต้น
  • อ่าน 2 นาที
  • ตัวอย่างที่รันได้ 1 ตัวอย่าง
สิ่งที่คุณจะได้เรียนรู้
  • 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.

ประเด็นสำคัญ

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

ตัวอย่าง Rust ที่รันได้

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]);
}
สร้างปุ่ม Run สำหรับตัวอย่างนี้ ผลลัพธ์จากการรันโค้ด
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
50th: 7778742049

ฝึกฝน

เปิดตัวอย่างในคอมไพเลอร์ออนไลน์ ลองเปลี่ยนค่าหรือเพิ่มบรรทัด แล้วทายผลลัพธ์ก่อนกดรัน จากนั้นลองทำให้โค้ดผิดโดยตั้งใจ แล้วอ่านข้อความจากคอมไพเลอร์

เรียนบทนี้จบแล้วใช่ไหม

ทำเครื่องหมายว่าเรียนแล้วเพื่อติดตามความคืบหน้า

ถัดไป: Functions and Return Values →

ฝึกด้วยโจทย์

ใช้สิ่งที่เรียนในบทนี้แก้ปัญหาจริง ทุกโจทย์รันในเบราว์เซอร์ พร้อมการทดสอบทันทีและรีวิวจาก AI

โจทย์ทั้งหมด