美文网首页
算法 2.1.1 数字阶乘的计算

算法 2.1.1 数字阶乘的计算

作者: 珺王不早朝 | 来源:发表于2021-01-24 21:54 被阅读0次

题目描述

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

=== 待续 ===

相关文章

  • 算法 2.1.1 数字阶乘的计算

    题目描述 求 n! = (n-1)! × n 示例:输入:n=9输出:362880 提示:0!=1给“0!”下定义...

  • 大数阶乘--10000的阶乘实现

    普通的阶乘算法: 在数字比较小的时候,以上阶乘算法还能勉强应对,但当数字大于50时,阶乘结果就达到了65位数之多,...

  • 求解大数阶乘 【C语言】

    题目 编写一个算法,计算 的阶乘 代码

  • Python 计算阶乘的算法

    希望你的坚持是因为热爱,而不是不甘by:缘分落地 阶乘在高中的数学排列组合曾经出现过,相信各位都不陌生。举个栗子:...

  • Java 实现阶乘算法

    Java 实现阶乘算法 阶乘算法如下: 以下列出 0 至 20 的阶乘: 0!=1,(0 的阶乘是存在的) 1!=...

  • N阶乘尾部的0个数

    N阶乘尾部的0个数 描述 设计一个算法,计算出n阶乘中尾部零的个数 思路: 1、1 * 2 * 3 * ... *...

  • Factorial

    使用循环计算阶乘 使用递归计算阶乘

  • 2、尾部的零

    题目描述 设计一个算法,计算出n阶乘中尾部零的个数 思路 n阶乘能产生尾数0,换言之就是问n阶乘能乘出多少个101...

  • 【算法】- 递归计算阶乘

  • Java算法之递归算法计算阶乘

    本文为大家分享的java算法计算阶乘,在学习Java课程时经常会遇到求阶乘问题,今天接跟大家一起探讨一下{学习Ja...

网友评论

      本文标题:算法 2.1.1 数字阶乘的计算

      本文链接:https://www.haomeiwen.com/subject/rmbezktx.html