C语言经典100例题(26)--利用递归方法求5!(通俗易懂)

2023-11-07

目录

题目

问题分析

 代码

运行结果


题目

 利用递归方法求5!。


问题分析

函数的递归调用最基本的思想就是:大事化小。 

5!= 5 * 4!

5!= 5 * 4 * 3!

5!= 5 * 4 * 3 * 2!

5!= 5 * 4 * 3 * 2 * 1

每层分离出来最大的那个数。定义一个求阶乘的函数 fac() ,那么 n 的阶乘就可以递归地表示为    n * fac ( n - 1 ) ,直到 n 等于1结束。

在定义函数的时候,最好定义在主函数之前,因为这样在主函数调用的时候就不用声明了;如果定义在主函数之后,在主函数中调用的时候需要先对调用的函数进行声明,如果不进行声明直接调用,程序在运行的时候会报错。

递归调用函数 fac() 的过程为:

 代码

#include<stdio.h>
int fac(int a)
{
	if (a != 1)
		return a * fac(a - 1);
	else
		return 1;
}

int main()
{
	int m=5;
	int n=fac(m);
	printf("5!为:> %d\n", n);
}

运行结果

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言经典100例题(26)--利用递归方法求5!(通俗易懂) 的相关文章

随机推荐

  • FBE中的Home界面FallbackHome

    FallbackHome FallbackHome继承Activity 是安卓系统启动后未解锁时的home界面 Settings程序AndroidManifest xml中定义了FallbackHome的intent filter 可以看到
  • Qt connect传参方式及lambda函数传参方式详解

    Qt connect传参方式及lambda函数传参方式详解 Qt是一种流行的跨平台C 应用程序框架 它提供了许多有用的工具和函数来帮助开发人员构建高效的图形用户界面和其他应用程序 其中 Qt Connect函数是用于连接信号和槽的重要函数之
  • 玩转Eclipse — 自动代码规范检查工具Checkstyle

    大项目都需要小组中的多人共同完成 但是每个人都有自己的编码习惯 甚至很多都是不正确的 那么如何使小组所有开发人员都遵循某些编码规范 以保证项目代码风格的一致性呢 如果硬性地要求每个开发人员在提交代码之前 都要对照的编码规范将自己的代码检查一
  • GPIO的工作模式、GPIO复用

    目录 1 GPIO 内部结构 2 GPIO 的 8种工作模式 3 GPIO 的复用 1 GPIO 支持多种外设的时候 如何区别 2 普通推挽输出 复用推挽输出的区别 1 GPIO 内部结构 GPIO 的电路是一堆电路 所以需要配置寄存器 来
  • 2023智慧物流服务指数研究报告

    物流定义 将运输 储存 装卸 搬运 包装 流通加工 配送 信息处理等基本功能实施有机结合 使物品从供应地向接收地进于实体流动的过程 物流产业大致可以分成运输环节 仓储环节 配送环节 数据服务环节 技术服务环节 智慧物流 是指以物联网技术为基
  • vs2008 ActiveX控件测试容器的生成以及调试ActiveX控件

    1 ActiveX控件测试容器的生成 用TSTCON生成测试容器 http msdn microsoft com zh cn library f9adb5t5 v vs 90 aspx 在搜索里搜索tstcon 双击TstCon文件夹 将此
  • Java——猜数字游戏(Random类和Scanner类的简单介绍案例)

    文章目录 猜数字游戏 Random随机数 Scanner 猜数字游戏 系统随机生成一个1 100的随机数 玩家通过键入自己猜测的数字 如果猜中了 则提示玩家赢了 游戏结束 否则提示用户大了或者小了 让玩家继续猜 玩家有十次机会 注 这是我今
  • NIO - 文件的简单操作

    1 将数据写进文件 public class NioFileChannelDemo1 public static void main String args throws Exception String str hello world 创
  • 实战wxPython:053 - 使用剪贴板

    我们在使用电脑的时候都知道可以使用复制和粘贴文本 到我们复制一些东西的时候 它会进入一个名为 剪贴板 的位置 大多数程序都提供对某种类型的剪贴板的访问 无论是在程序本身还是系统剪贴板 都允许将项目复制到其他应用程序 wxPython GUI
  • [深度学习] TensorFlow上实现Unet网络

    代码取自于 https github com jakeret tf unet TensorFlow Unet文档 https tf unet readthedocs io en latest installation html Tensor
  • 数据结构(实现不带头结点的链栈)

    链栈 存储结构采用链式存储的栈被称为链栈 优点 提高存储空间的利用率 且不存在栈满溢出的情况 特点 常采用单链表实现 规定所有操作在链表的表头进行 分类 带头结点 不带头结点 代码分块 1 结构体构建 typedef struct Link
  • 定义一个复数类Complex,重载运算符“+”,“-”,“*”,“/”,使之能用于复数的加、减、乘、除。运算符重载函数作为Complex类的成员函数。编写程序,分别求两个复数之和、差、积和商。

    问题描述 定义一个复数类Complex 重载运算符 使之能用于复数的加 减 乘 除 运算符重载函数作为Complex类的成员函数 编写程序 分别求两个复数之和 差 积和商 Input 两个复数 Output 两个复数之和 差 积和商 Sam
  • Chapter1 (1-5)简介

    crx文件是谷歌浏览器的扩展文件 就是插件 真实Dom与虚拟Dom 真实dom很重 虚拟dom较轻 更新真实dom页面会重绘 而更新虚拟dom页面不会重绘 渲染的时候才会更新页面 Jsx JavaScript XML react定义的一种类
  • qt线程调用QAXObject(Excel,word)并传信号

    说明 在线程间使用信号槽进行通信时 需要注意必须使用元数据类型 Qt内生的元数据类型 如int double QString 等 如果要用自己定义的数据类型 需要在connect前将其注册为元数据类型 形式见代码 qRegisterMeta
  • 金融业需要的大模型,是一个系统化工程

    今年年初 在AIGC刚刚开始爆火的时候 我们曾经采访过一位AI领域的专家 当我们提问哪个行业将率先落地大模型时 他毫不犹豫地说道 金融 金融行业场景多 数据多 知识多 这样的 三多 特点让其成为AI大模型发挥价值的天选 与此同时 金融场景专
  • echarts添加点击事件

    echarts柱状图点击事件 最近做echarts柱状图 遇到了两个个问题 此处记录一下 点击柱状图某一个柱体 跳转页面 由于数据差异大 有的柱体很长 有的很短 短的柱体很难点击到 需要设置整个柱形区域都可以点击 页面上有两个标签 切换标签
  • 【满分】【华为OD机试真题2023 JS】学校的位置

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 学校的位置 知识点数组贪心排序 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 为了解决新学期学生暴涨的问题 小乐村要建所新学校 考虑到学生上学安全问题 需要所有
  • [前端css-2] 实现圆闪烁效果

    前端css 2 实现圆闪烁效果 1 效果展示 效果预览 2 知识点 1 position 相对定位 绝对定位 2 伪类 after before 3 animation 动画 3 源代码
  • 我的世界1.12 Java崩溃,救救孩子!1.12.2游戏崩溃

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Minecraft Crash Report WARNING coremods are present Contact their authors BEFORE contacting forge
  • C语言经典100例题(26)--利用递归方法求5!(通俗易懂)

    目录 题目 问题分析 代码 运行结果 题目 利用递归方法求5 问题分析 函数的递归调用最基本的思想就是 大事化小 5 5 4 5 5 4 3 5 5 4 3 2 5 5 4 3 2 1 每层分离出来最大的那个数 定义一个求阶乘的函数 fac