文章目录

  • 一、什么是阶乘
  • 二、阶乘 递归实现
    • 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. python爬虫代理池_python爬虫之ProxyPool(代理ip地址池的构建)
  2. node学习准备工作1 --- nvm下载、终端环境iterm2配置
  3. hdu 2881(简单dp)
  4. Python教程之udp和tcp协议介绍
  5. idea整合mybatis错误
  6. 2019 ACOUG年会圆满结束(附PPT和视频下载)
  7. pandas保存为excel,同时设置保存的excel的样式
  8. werkzeug routing.MapAdapter
  9. 简易天线增益测量系统
  10. 【到底什么才是电角度呢?如何使用示波器精准的测量电角度呢?】
  11. 什么是维基百科?维基百科有什么用
  12. c语言键盘符号大全,c语言实现数学符号软键盘源码
  13. docker守护式安装tomcat(汤姆猫)报错:Error starting userland proxy: listen tcp 0.0.0.0:8888: bind: address alrea
  14. 【基于HTML技术的趣味“2048”小游戏】(效果+源代码)
  15. AI 可以从人类思维中学习的11个启示
  16. 【Eclipse】--Eclipse折叠代码插件folding
  17. 如何在贵金属白银现货走势分析中积累经验?
  18. 来说一说毕达哥拉斯定理
  19. JAVAWEB开发之工作流详解(一)——Activiti的环境搭建、插件安装、核心API
  20. canvas实现H5手势密码设置以及手势解锁

热门文章

  1. 通过网络adb连接安卓设备传输文件
  2. 微信小程序原生集成vant weapp注意点 (https://youzan.github.io/vant-weapp/#/intro)
  3. 6502计算机联锁图纸上BA1,6502电气集中及计算机联锁系统造作使用问答
  4. 学生如何提高专业英文阅读能力丨传道授业
  5. SAP ALV颜色代码对应颜色(整理列级别 行级别 单元格级别设置方法)
  6. 数据结构——图的存储结构
  7. ABBYY FineReader PDF程序安装及注意事项
  8. ubuntu系统备份方法
  9. python3.6中文版下载-Python3.6.6
  10. 5G下行CoMP技术研究及测试验证