= (n, a = 0, b = 1) => (n === 0 ? a : fibbo(n - 1, b, a + b))
console.log(fibbo(999))
Так никогда не пиши
Что-то похожее можно выразить генерацией последовательности (через iter::successors, mem::swap и аккумулятор на стеке)
try_fold мб, но последовательность уж лучше
Так верно же fn fibbo(mut _n: u32, mut _a: i32, mut _b: i32) -> u32 { if _n == 0 { _a.try_into().unwrap() } else { fibbo(_n - 1, _b, _a + _b) } } fn main() { println!("Fibbonacci {}", fibbo(10, 0, 1)); }
Обсуждают сегодня