rust實現Fibonacci數列

for循環實現

fn main() {
    let mut v = vec![1,1];
    let n = 12;
    for i in 2..n {
        let tmp = v[(i-1) as usize] + v[(i-2) as usize];
        v.push(tmp);
    }
    assert_eq!(v, vec![1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144]);
}

遞歸方式實現

fn fun(mut v: Vec<i32>, n: usize, i: usize) -> Vec<i32>{
    match i < n {
        true => {
            let tmp = v[i-1] + v[i-2];
            v.push(tmp);
            return fun(v, n, i+1);
        }
        _ => {
            return v;
        }
    }
}
fn main() {
    let mut v = vec![1,1];
    let n = 12;
    v = fun(v, n, 2);
    assert_eq!(v, vec![1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144]);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章