题目:递归练习。程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。
(1)请使用递归的方法求8!。
(2)请使用递归的方法求N!,N>=1且N<=10。
程序分析:首先找出递归公式,然后依次求值。
输出格式:{} 的阶乘等于 {}
知识点:递归、函数
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);
}
程序执行结果:
8 的阶乘等于 40320
Process finished with exit code 0