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 ...
最新文章
- python爬虫代理池_python爬虫之ProxyPool(代理ip地址池的构建)
- node学习准备工作1 --- nvm下载、终端环境iterm2配置
- hdu 2881(简单dp)
- Python教程之udp和tcp协议介绍
- idea整合mybatis错误
- 2019 ACOUG年会圆满结束(附PPT和视频下载)
- pandas保存为excel,同时设置保存的excel的样式
- werkzeug routing.MapAdapter
- 简易天线增益测量系统
- 【到底什么才是电角度呢?如何使用示波器精准的测量电角度呢?】
- 什么是维基百科?维基百科有什么用
- c语言键盘符号大全,c语言实现数学符号软键盘源码
- docker守护式安装tomcat(汤姆猫)报错:Error starting userland proxy: listen tcp 0.0.0.0:8888: bind: address alrea
- 【基于HTML技术的趣味“2048”小游戏】(效果+源代码)
- AI 可以从人类思维中学习的11个启示
- 【Eclipse】--Eclipse折叠代码插件folding
- 如何在贵金属白银现货走势分析中积累经验?
- 来说一说毕达哥拉斯定理
- JAVAWEB开发之工作流详解(一)——Activiti的环境搭建、插件安装、核心API
- canvas实现H5手势密码设置以及手势解锁
热门文章
- 通过网络adb连接安卓设备传输文件
- 微信小程序原生集成vant weapp注意点 (https://youzan.github.io/vant-weapp/#/intro)
- 6502计算机联锁图纸上BA1,6502电气集中及计算机联锁系统造作使用问答
- 学生如何提高专业英文阅读能力丨传道授业
- SAP ALV颜色代码对应颜色(整理列级别 行级别 单元格级别设置方法)
- 数据结构——图的存储结构
- ABBYY FineReader PDF程序安装及注意事项
- ubuntu系统备份方法
- python3.6中文版下载-Python3.6.6
- 5G下行CoMP技术研究及测试验证