Rust學習(7):求解斐波那契數列【時間複雜度/空間複雜度不理解以及多種方法求解待續】

求斐波那契數列得前n項

描述:
斐波那契數列的定義如下:
在這裏插入圖片描述

解法1:遞歸

macro_rules! input_num {
    () => {
            {
             let mut input = String::new();

             std::io::stdin().read_line(&mut input)
             .expect("Falied to read line");

             input.trim().parse().unwrap()
        }
    };
}

//生成 n 階斐波那契數列
fn fibonacci(n:u32)->u32{
   if n == 0{
       return  0
   }else if n == 1{
       return  1
   }else{
       return  fibonacci(n-1) + fibonacci(n-2);
   }

}
fn main() {
    loop {
        println!("輸入n:");

        let  n:u32  = input_num!();

        println!("Fibonacci:");
        let mut i = 0;
        while i < n{
            print!("{}  ",fibonacci(i));
            i = i + 1;
        }
        println!(" ")
    }
}

時間複雜度分析:
在這裏插入圖片描述
在這裏插入圖片描述
參考:https://blog.csdn.net/beautyofmath/article/details/48184331【強推】
https://blog.csdn.net/lxf_style/article/details/80458519【強推】

結果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章