题目描述
求 n! = (n-1)! × n
示例:
输入:n=9
输出:362880
提示:
0!=1
给“0!”下定义只是为了相关公式的表述及运算更方便
n为大于等于0的整数
算法思维
- 递归
解题要点
- 利用递归思想,将阶乘问题层层分解
解题思路
一. Comprehend 理解题意
- 计算一个数从1到其自身累乘结果,其中 0!= 1
二. Choose 选择数据结构与算法
递归解法
- 数据结构:-
- 算法思维:递归
三. Code 编码实现基本解法
class Solution {
public int fact(int n){
//1.递归的结束条件
if (n == 0){
return 1;
}
//2.主体逻辑
//3.递归公式:f(n) = f(n-1)*n
return fact(n-1)*n;
}
}
执行耗时:-
内存消耗:-
时间复杂度:O(n) -- n 次递归调用 O(n),n 次乘法运算 O(n)
空间复杂度:O(1) -- 常数级内存空间 O(1)
四. Consider 思考更优解
=== 待续 ===
五. Code 编码实现最优解
=== 待续 ===
六. Change 变形与延伸
=== 待续 ===