Alıştırma: Fibonacci
Fibonacci dizisi [0, 1] ile başlar. n > 1 için bir sonraki sayı, önceki ikisinin toplamıdır.
N’inci Fibonacci sayısını hesaplayan fib(n) adlı bir fonksiyon yazın. Bu fonksiyon ne zaman paniğe (panic) uğrar?
fn fib(n: u32) -> u32 { if n < 2 { // Temel durum. return todo!("Bunu gerçekleştirin (implement)"); } else { // Özyinelemeli (recursive) durum. return todo!("Bunu gerçekleştirin (implement)"); } } fn main() { let n = 20; println!("fib({n}) = {}", fib(n)); }
This slide and its sub-slides should take about 15 minutes.
- Bu alıştırma, özyinelemeye (recursion) klasik bir giriş niteliğindedir.
- Öğrencileri temel durumları ve yinelemeli adımları (recursive step) düşünmeye teşvik edin.
- “Bu fonksiyon ne zaman paniğe (panic) uğrar?” sorusu, tam sayı taşması (integer overflow) hakkında düşünmeniz için bir ipucudur. Fibonacci dizisi hızla büyüyor!
- Öğrenciler adımlamalı (iterative) bir çözüm de bulabilirler; bu, özyinelemeli (recursion) ile adımlamalı (iteration) arasındaki dengeleri (örneğin, performans, derin özyineleme için yığın taşması) tartışmak için harika bir fırsattır.