文章目录

  • 一、什么是阶乘
  • 二、阶乘 递归实现
    • 1. 设计递归方程
    • 2. 确定边界条件
    • 3. 编写程序代码
    • 4. 运行结果展示

一、什么是阶乘

一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。

二、阶乘 递归实现

1. 设计递归方程

由阶乘的定义(n!=n∗(n−1)∗(n−2)∗⋅⋅⋅∗1)(n! = n*(n-1)*(n-2)*···*1)(n!=n∗(n−1)∗(n−2)∗⋅⋅⋅∗1)可以明显看出其设计思路f(n)=n∗f(n−1)f(n)=n*f(n-1)f(n)=n∗f(n−1)。

2. 确定边界条件

nnn为正整数,最小值为1,且1!=11!=11!=1,当进行到n=1n=1n=1时应控制程序跳出递归方程。

3. 编写程序代码

// 阶乘的递归实现算法
#include <iostream>using namespace std;int factorial(int n);int main()
{int num = 1;cout << "请输入一个正整数,求其阶乘:";cin >> num;cout << "它的阶乘是:" << factorial(num) << endl;return 0;
}int factorial(int n)
{if (n == 1)return 1;return n * factorial(n - 1);
}

4. 运行结果展示


*其它一些常见算法请参阅此链接文末目录


大家好呀!这是我第一次写博客呢~
今后还请多多关照哦^_^

n的阶乘 递归算法实现(C++)相关推荐

  1. Python:实现factorial recursive阶乘递归算法(附完整源码)

    Python:实现factorial recursive阶乘递归算法 def factorial(n: int) -> int:if not isinstance(n, int):raise V ...

  2. Python:实现double factorial recursive双阶乘递归算法(附完整源码)

    Python:实现double factorial recursive双阶乘递归算法 def double_factorial(n: int) -> int:if not isinstance( ...

  3. 阶乘算法(递归非递归)

    阶乘非递归 $num = 5; function num($num){$str = 1;for ($i=1;$i<=$num;$i++){$str *= $i;}return $str; } 阶 ...

  4. 递归算法----“自己调用自己”

    声明:根据观看[北京尚学堂高淇]视频整理! 递归算法 递归的基本思想就是"自己调用自己". 递归算法可以决解决复杂问题,如:斐波那契数列的计算.汉诺塔.快排等问题 [实例 测试递归 ...

  5. foreach jdk8 递归_[Java 8] (8) Lambda表达式对递归的优化(上) - 使用尾递归 .

    递归优化 很多算法都依赖于递归,典型的比如分治法(Divide-and-Conquer).但是普通的递归算法在处理规模较大的问题时,常常会出现StackOverflowError.处理这个问题,我们可 ...

  6. 序列复杂度怎么看_《趣学算法》作者又一力作上架,再分享您一篇算法复杂度...

    不知道读者们有没有看过陈小玉的<趣学算法>这本书,该书在出版后受到广大读者一致好评,在一年内重印了10次,并输出了繁体版的版权.不知道读过这本书的朋友们感觉第一本怎么样?欢迎留言给我们.接 ...

  7. 我有一个梦想,希望每一位提到算法的人,不再立即紧皱眉头

    点击关注 异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书--异步小编 多年来,我有一个梦想,希望每一位提到算法的人,不再立即紧皱眉头,脑海闪现枯燥 ...

  8. python算法完整教程专栏完整目录

    python算法完整教程专栏完整目录 专栏说明如下 专栏目录 专栏说明如下 内容:python算法完整教程 数量:692篇博文(2023年2月15日截止) 更新时间至:2023年2月15日(后续加上去 ...

  9. 第五章 多范式的编程语言Scala

    第五章 多范式的编程语言Scala 1. Scala入门 1.1 Scala概述 1.1.1 为什么学习Scala Spark-新一代内存级大数据计算框架, 是大数据的重要内容 Spark就是使用Sc ...

最新文章

  1. 《让系统发生重大宕机事故的15个方法》
  2. oracle中lang能不能查找,oracle中的查询语句
  3. mxnet根据相似度进行人脸样本对图片清理
  4. Linux下C语言串口应用编程,Linux下串口C语言编程
  5. 被引用的外部JS存在window.onload时,判断当前页面是否已存在window.onload,并进行相应处理...
  6. c语言学生对老师的评教系统,学生对老师的评价
  7. springboot thymeleaf 引入jquery_超详细实战:SpringBoot高级之autoconfigure自动化配置
  8. maven离线安装jar包
  9. OPIE(火狐扩展)-导入导出firefox扩展的所有设置
  10. SAP ERP和ORACLE ERP的区别是哪些?
  11. python实用案例教程第四章-python 入门到实践第四章案例
  12. uniapp开发微信小程序canvas动画入门
  13. HTTP1.0、HTTP2.0、HTTP 3.0及HTTPS简要介绍
  14. 使用 Envoy 和 AdGuard Home 阻挡烦人的广告
  15. open数据库Timeout expired 错误
  16. JAVA 使用POI读取文档
  17. codeigniter linux url 大写,CodeIgniter中使用Smarty3基本配置
  18. BackTrack5完全配置
  19. UI设计转行交互怎么样?【萧蕊冰】
  20. typescript---配置类相关内容(十五)

热门文章

  1. 齐边错边装置液压系统比例阀放大器
  2. C语言将字节数组转为hex字符串
  3. 寻找工作的意义——《你在为谁工作》读后感
  4. 二十二:访问者模式(伪动态双分配)
  5. 脑海链ceo谢宏中获授权组织币改实验区教育培训行业分群
  6. 无穷小在袁萌脑海中的第一次闪光
  7. 2019年CSDN最新排名(附前十排名)
  8. linux下weblogic12c漏洞修复打补丁基本操作
  9. YDOOK:Pytorch教程:tensor 张量内各个元素之和 相加值输出
  10. 代码都是对的,但是页面总是404的处理办法。