算法 2.1.1 数字阶乘的计算

题目描述

求 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 变形与延伸

=== 待续 ===

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容