Rust語言編程實(shí)例100題-026
題目:遞歸練習(xí)。程序調(diào)用自身的編程技巧稱為遞歸( recursion)。遞歸做為一種算法在程序設(shè)計(jì)語言中廣泛應(yīng)用比驻。 一個(gè)過程或函數(shù)在其定義或說明中有直接或間接調(diào)用自身的一種方法哮肚,它通常把一個(gè)大型復(fù)雜的問題層層轉(zhuǎn)化為一個(gè)與原問題相似的規(guī)模較小的問題來求解凸丸,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復(fù)計(jì)算伐债,大大地減少了程序的代碼量预侯。
(1)請(qǐng)使用遞歸的方法求8!。
(2)請(qǐng)使用遞歸的方法求N!峰锁,N>=1且N<=10。
程序分析:首先找出遞歸公式双戳,然后依次求值虹蒋。
輸出格式:{} 的階乘等于 {}
知識(shí)點(diǎn):遞歸、函數(shù)
fn main() {
const N: i32 = 8;
let result = fact(N);
println!("{} 的階乘等于 {}", N, result);
}
/// 遞歸求階乘
fn fact(n: i32) -> i32 {
if n == 0 {
return 1;
}
return n * fact(n - 1);
}
程序執(zhí)行結(jié)果:
8 的階乘等于 40320
Process finished with exit code 0