递归和非递归分别实现求n的阶乘(不考虑溢出的问题)

首先要清楚阶乘定义,所谓 n 的阶乘,就是从 1 开始乘以比前一个数大 1 的数,一直乘到 n,用公式表示就是:n! = 1×2×3×4×…×(n-2)×(n-1)×n

使用循环实现:

设循环变量为 i,初值为 1,i 从 1 变化到 n;依次让 i 与 sum 相乘,并将乘积赋给 sum。
① 定义变量 sum,并赋初值 1。
② i 自增 1。
③ 直到 i 超过 n

int Fun(int n)//非递归
{int sum = 1;int i = 0;for (i = 1; i <= n; i++){sum = sum * i;}return sum;
}

使用递归实现:

int Fun(int n)//递归
{if (n <= 1)return 1;return n * Fun(n - 1);
}

测试结果:

int main()
{int n = 0;scanf("%d", &n);int sum = Fun(n);printf("%d\n", sum);return 0;
}

求n的阶乘(C语言)相关推荐

  1. 如何用递归思想 求n的阶乘 C语言

    如何用递归思想 求n的阶乘 C语言 首先,我讲一下什么是递归? 一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数.执行递归函数将反复调用其自身,每调用一次就进入新的一层,当最内层的函 ...

  2. c语言求50以内阶乘,C语言之数组50以内的阶乘.doc

    C语言之数组50以内的阶乘 #include //因为不知道50的阶乘有多少位,所以用100代 #define N 100 void fun(int); int main() { int i; // ...

  3. c语言中求5的阶乘,c语言用for语句求5的阶乘

    程序中for语句格式不正确,括号中的三个zhi表达式都是用分号间隔的,表示三个独立的表达,c语言中用逗号间隔尤其专门的含义. 如果想把它写成一个独立的子函数的话,可以利用递归的方法: int Fact ...

  4. 求正整数的阶乘 c语言,求10000的阶乘(c语言代码实现)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* 程序功能:计算一个正整数n的阶乘,目前最大能运算10000的阶乘,可秒杀. 程序意义:加强自己对于大数的处理. 说明:此程序对乘法和除法还未做任何优 ...

  5. 求1000的阶乘c语言编程,用C语言编写程序,求出1000的阶乘?

    给你个通用的.运行后输入1000. #define M 20000 /* 最大结果位数,DOS能访问的内存有限,最好不要超过 30000 位*/ #define N (M+5) main() { in ...

  6. 求1000的阶乘c语言编程,[原创] 1000的阶乘的程序代码,好题大家分享

    我又改了一下,还是不行,结果为0了.怎么回事啊? #include #include void gewei(int *p,int k); /*声明对个位数的相乘的函数*/ void shiwei(in ...

  7. c语言程序设计阶乘输出,C语言编写10的阶乘,用C语言编程求10的阶乘

    导航:网站首页 > C语言编写10的阶乘,用C语言编程求10的阶乘 C语言编写10的阶乘,用C语言编程求10的阶乘 匿名网友: 思路:先定义一个函数求一个数的阶乘,接着依次从1到10调用该函数就 ...

  8. 小学 n 阶乘的后面包含多少零c语言,C语言---求n的阶乘后面有多少个连续的0

    C语言---求n的阶乘后面有多少个连续的0 题目描述:给定一个正整数n,返回n的阶乘尾部连续0的个数. 例如:(5,5*4*3*2*1=120,则返回1),(10,10*9*8*7*6*5*4*3*2 ...

  9. 诺禾-C语言实现尾递归求7的阶乘

    如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的.当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归.尾递归函数的特点是在 ...

  10. C语言 输入一个整数n,求出其阶乘

    输入一个整数n,求出其阶乘 #include <iostream> #include <cstdio> using namespace std; int main() {int ...

最新文章

  1. Lua1.0 代码分析 库
  2. 使用 CodeIgniter 框架快速开发 PHP 应用(五)
  3. 抽象工厂产品等级结构与产品族
  4. centos killall安装
  5. 推荐我们在B站免费的转录组课程|测序原理,GO/GSEA/WGCNA
  6. 米斯特白帽培训讲义 漏洞篇 文件上传
  7. android本地gradle地址,android gradle本地路径不存在
  8. java 指定格式的date_指定格式的日期字符串转化成java.util.Date类型日期对象
  9. 图神经网络:Graph Neural Networks
  10. 3dsmax VRay分布式渲染
  11. 2018年俄罗斯世界杯之Java数据爬虫(一)
  12. 2020鸿蒙系统pc版,华为将在2020年发布鸿蒙操作系统2.0版,应用于创新国产PC电脑...
  13. Object.entries()方法的使用和实现
  14. #Ubunt进阶#Ubuntu 13.04 调节笔记本亮度
  15. 【DB宝3】在Docker中使用rpm包的方式安装Oracle 19c
  16. blender 保留贴图转换 mmd 模型到 ue4/ue5 引擎
  17. java poi 读取 word图片_Java Poi 根据文字内容 插入 word 图片-Go语言中文社区
  18. 基于springdata JPA的dao层接口实现
  19. JSFL_图片转换SWF导出
  20. java 小程序查看器 启动:未初始化小程序 解决方法

热门文章

  1. iOS - RunLoop 深入理解
  2. 如何查询自己计算机二级的准考证号?
  3. springboot URL参数传递
  4. 利用深度学习(CNN)进行验证码(字母+数字)识别
  5. Linux命令长选项和短选项区别
  6. kali快捷键和设置方式
  7. [cesium] 数字孪生 | 超图 | UE4 | Unity | 基于三维GIS + 游戏引擎结合示例 | UE4 和 Unity的效果展示
  8. 计算机自考研究生吗,自考本科快毕业了,考个研究生脱掉自考帽子。专科考了计算机,本科靠了人力,研究生考那类容易有公费的吗...
  9. 沉痛悼念织梦创始人林学先生,他为网站开源系统打开了大门
  10. 判断闰年的(使用for循环)