C语言学习第五天—递归
来源:互联网 发布:淘宝免单网 编辑:程序博客网 时间:2024/05/18 01:05
有下面一个问题求1到n的阶乘。公式
n! = n * (n-1) * (n-2) * ...* 1(n>0)
我们常用的解决办法是
long factorial(int n){ int i; long int sum=0, temp=1; for(i=1;i<=n;i++){ temp*=i; sum+=temp;}return sum;}这种解决方法虽然能解决问题,但是和上面公式相比还要有一个比较麻烦的转换关系,能不能直接把公式变成函数?C语言给我们提供了一种直接把数学公式转换成函数的方式,这种方式叫递归
递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
这个问题可以用递归这么解决
函数可以写成 f(n)=f(n-1)*n;
递归边界条件:n ==|| n==1
递归前段 :sum =1
递归后段:sum=i*f(i-1)
代码如下
long factorial(int n){ if(n==1||n==0) return 1; else return n*factorial(n-1);}
0 0
- C语言学习第五天—递归
- C语言学习的第五天
- C语言第五天
- 标准C语言第五天
- C语言学习第五天(函数、存储类型)
- 嵌入式学习笔记(第五天)C语言续
- 学习C 的第五天
- 21天学通C语言第五天---函数
- C语言暑期实习 第五天
- 学习Objective-C--第五天
- C语言 -- 递归学习
- C第五天
- c/c++第五天
- 20130823C语言编程实践课第五天
- 黑马程序员--IOS基础第五天(C语言)
- C语言第五天课堂笔记<详细+注释>
- 跟我一起学C语言(第五天)
- iOS学习——第五天
- android中Activity切换动画学习心得
- 论战Yann LeCun:谁能解释极限学习机(ELM)牛X在哪里?
- CWnd常用函数讲解
- C 语言学习第四天—函数和文件组织
- 思维拓展-记孩子疫苗接种登记
- C语言学习第五天—递归
- servlet的生命周期
- gxx_slide之城市规划
- Markdown语法的简要规则学习
- Java基础中关于多态转换异常的问题
- Oracle使用DBWS调用SSL/HTTPS的Webservice方法
- C语言学习第六天—预处理命令
- 人生感悟
- Ural 1146 Maximum Sum