c语言求阶乘的两种算法(递归和循环)
循环法
循环法还是比较简单的,很常规,就先输入你要求的阶乘n,然后一直自减
#include <stdio.h>
main()
{long n,sum=1;//10 以上的阶乘就比较大了,所以用longint i;printf("请输入你要求的阶乘呀:");scanf("%d",&n);//先输入要求的阶乘数for(i=n;i>0;i--)//乘到1为止{sum*=i;}printf("%d != %d",n,sum);return 0;}
完成后的结果是这样子的
递归法
编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。递归函数不能定义为内联函数。
就像我和你说:“从前有座山,山上有座庙,庙里有个小和尚,老和尚和小和尚说:从前有座山,山上有座庙,庙里有个小和尚,老和尚和小和尚说:巴拉巴拉的”
#include<stdio.h>
int fun(int n)
{if(n==1||n==0) return 1;//如果参数是0或者1返回1
return n*fun(n-1);//否则返回n和下次递归的积
}int main()
{int n;
scanf("%d",&n);
printf("%d\n",fun(n));
return 0;
}
完成的结果就是这样子的
使用递归要注意的就是关于结束的条件,不然程序会崩溃的
c语言求阶乘的两种算法(递归和循环)相关推荐
- 非负矩阵分解算法C语言,非负矩阵分解的两种算法
摘要: 随着计算机和信息技术的发展,矩阵分解成为处理大规模数据的一种有效手段.例如,在数值计算中,利用矩阵分解可将规模较大的复杂问题转化为小规模的简单子问题来求解;在应用统计领域,通过矩阵分解得到原数 ...
- 最大公约数程序c语言,C语言求最大公约数(两种最简单的算法实现)
第一种:用较小数的最大约数于较大数作求模元算 #include /* 求两个数的最大公约数 */ int main(){ int a,b,max,min,i,result; scanf("% ...
- 三位数求最大公因数c语言,求最大公因数的三种算法
欧几里得算法 #include using namespace std; int fun(int a, int b){ if (a >= b){ int r = a%b; if (r == 0) ...
- 【matlab 圆周率计算】matlab 求圆周率的两种算法实现比较
%author:laidefa %data:2014-09-19 %丘德诺夫斯基公式求圆周率 function mpi=qdnfsj(m) i=m; s=13591409; for n=1:i A=( ...
- 斐波那契数列两种算法实现(循环,递归)
首先是最简单的递归算法,相信很多初学者第一次接触递归这种算法都是从写一个斐波那契数列开始的. 这里除了递归算法之外我还会介绍循环算法 首先是最基础的递归算法 #include <stdio.h& ...
- 打卡第二十四天(问题:计算阶乘,打印九九乘法表,计算最大公约数的两种算法)
1.计算阶乘 这里给出递归和递推两种计算阶乘的程序. #include<stdio.h> //递归法计算阶乘 long factorial(int n) {if(n==0||n==1)re ...
- c语言有参有类最小公倍数,C语言求最大公约数和最小公倍数算法
C 语言求最大公约数和最小公倍数算法 C 语言求最大公约数和最小公倍数可以说是C 语言编程学习中一个重点和难点,它常常作为计算机专业学生参加各种考试必须要把握的内容.其算法方面除常用的辗转相除法外.还 ...
- C语言求最大公约数3种方法
该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105163610 C ...
- C语言求最大公约数三种方法详解
C语言求最大公约数三种方法详解 题目要求 常用写法(穷举法) 辗转相减法 辗转相除法 main函数 整体代码 题目要求 运行最大公约数的常用算法,并进行程序的调式与测试. 常用写法(穷举法) 从两个数 ...
- “斐波那契数列”的两种算法
"斐波那契数列"的两种算法 斐波那契数列有个规律:从第三个数开始,每个数是前两个数之和,比如: 1 1 2 3 5 8 13 21 34 55...... 现在通过两种方式(递归与 ...
最新文章
- eclipse 中断言使用的设定
- 刚出道的黑客搞瘫美国!他们一边搞钱一边捐款给慈善组织,还说俄国人不打俄国人...
- 高中生计算机创新大赛作品,2017 第十届“英特尔杯”全国大学生软件创新大赛获奖作品...
- php 异常值检测,PHP中的错误处理、异常处理机制分析
- linux eclipse设置颜色,Linux Eclipse美化:解决工具栏过大和 Javadoc背景色修改
- sql查询无结果返回空_3分钟短文 | Laravel 查询结果检查是不是空,5个方法你别用错...
- android 代码 升级rom,ROM之家简析:Android手机系统怎么升级
- new/delete和malloc/free的区别一般汇总
- rem布局 html,移动端h5之rem布局/px2rem
- Oracle 冷备份详解【实战案例】
- 赵栋 201771010137 《面向对象程序设计(java)》第二周学习总结
- ExtJs xtype一览(转存)
- python博弈论_通过几个例子理解博弈论与纳什均衡
- 心得体会计算机辅助设计实训,cad实训的心得体会模板
- linux的字体文件夹在哪里,把windows下的字体安装到Linux系统下的方法介绍
- 程序员防猝死指南——程序员养生攻略
- 数据仓库系列--维度表技术
- 让图片固定不动的两种方法
- 刀片服务器改台式电脑_刀片服务器安装指南_IT /计算机_信息
- 电力VR技术来进行安全教育培训有什么好处广州华锐互动
热门文章
- 网件 无线打印机服务器,NETGEAR Genie让普通打印机实现Air print功能
- yarn lib cli.js SyntaxError: Unexpected token
- 【工控老马】欧姆龙PLC FINS指令模板整理
- 按键精灵---后台按键及鼠标操作
- 信通方恒资产评估行业快讯 - 森林资源资产抵押贷款-金融机构对抵押物进行审核与权属认定注意事项
- react加水印_【REACT】 水印生成方案
- python实现矩阵的转置_Python实现矩阵转置的方法分析
- 电脑开机是哪个键 电脑常用快捷键盘点
- 计算机it是什么,IT是什么意思
- IT与商业管理的三大阶段