求斐波那契數列得前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【強推】
結果: