n的阶乘 递归算法实现(C++)
文章目录
- 一、什么是阶乘
- 二、阶乘 递归实现
- 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++)相关推荐
- Python:实现factorial recursive阶乘递归算法(附完整源码)
Python:实现factorial recursive阶乘递归算法 def factorial(n: int) -> int:if not isinstance(n, int):raise V ...
- Python:实现double factorial recursive双阶乘递归算法(附完整源码)
Python:实现double factorial recursive双阶乘递归算法 def double_factorial(n: int) -> int:if not isinstance( ...
- 阶乘算法(递归非递归)
阶乘非递归 $num = 5; function num($num){$str = 1;for ($i=1;$i<=$num;$i++){$str *= $i;}return $str; } 阶 ...
- 递归算法----“自己调用自己”
声明:根据观看[北京尚学堂高淇]视频整理! 递归算法 递归的基本思想就是"自己调用自己". 递归算法可以决解决复杂问题,如:斐波那契数列的计算.汉诺塔.快排等问题 [实例 测试递归 ...
- foreach jdk8 递归_[Java 8] (8) Lambda表达式对递归的优化(上) - 使用尾递归 .
递归优化 很多算法都依赖于递归,典型的比如分治法(Divide-and-Conquer).但是普通的递归算法在处理规模较大的问题时,常常会出现StackOverflowError.处理这个问题,我们可 ...
- 序列复杂度怎么看_《趣学算法》作者又一力作上架,再分享您一篇算法复杂度...
不知道读者们有没有看过陈小玉的<趣学算法>这本书,该书在出版后受到广大读者一致好评,在一年内重印了10次,并输出了繁体版的版权.不知道读过这本书的朋友们感觉第一本怎么样?欢迎留言给我们.接 ...
- 我有一个梦想,希望每一位提到算法的人,不再立即紧皱眉头
点击关注 异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书--异步小编 多年来,我有一个梦想,希望每一位提到算法的人,不再立即紧皱眉头,脑海闪现枯燥 ...
- python算法完整教程专栏完整目录
python算法完整教程专栏完整目录 专栏说明如下 专栏目录 专栏说明如下 内容:python算法完整教程 数量:692篇博文(2023年2月15日截止) 更新时间至:2023年2月15日(后续加上去 ...
- 第五章 多范式的编程语言Scala
第五章 多范式的编程语言Scala 1. Scala入门 1.1 Scala概述 1.1.1 为什么学习Scala Spark-新一代内存级大数据计算框架, 是大数据的重要内容 Spark就是使用Sc ...
最新文章
- 《让系统发生重大宕机事故的15个方法》
- oracle中lang能不能查找,oracle中的查询语句
- mxnet根据相似度进行人脸样本对图片清理
- Linux下C语言串口应用编程,Linux下串口C语言编程
- 被引用的外部JS存在window.onload时,判断当前页面是否已存在window.onload,并进行相应处理...
- c语言学生对老师的评教系统,学生对老师的评价
- springboot thymeleaf 引入jquery_超详细实战:SpringBoot高级之autoconfigure自动化配置
- maven离线安装jar包
- OPIE(火狐扩展)-导入导出firefox扩展的所有设置
- SAP ERP和ORACLE ERP的区别是哪些?
- python实用案例教程第四章-python 入门到实践第四章案例
- uniapp开发微信小程序canvas动画入门
- HTTP1.0、HTTP2.0、HTTP 3.0及HTTPS简要介绍
- 使用 Envoy 和 AdGuard Home 阻挡烦人的广告
- open数据库Timeout expired 错误
- JAVA 使用POI读取文档
- codeigniter linux url 大写,CodeIgniter中使用Smarty3基本配置
- BackTrack5完全配置
- UI设计转行交互怎么样?【萧蕊冰】
- typescript---配置类相关内容(十五)