黑马程序员技术交流社区
标题:
递归方法求阶乘的优化过程
[打印本页]
作者:
984326157
时间:
2015-7-16 10:29
标题:
递归方法求阶乘的优化过程
题目:请用递归方法5!。简化后的代码如下:
#include <stdio.h>
复制代码
只有两个函数,每个函数中一句代码,虽然可读性不高,但是很精简。一次我肯定不能写出来,这就是靠一步一步的优化得到的。面就说说我是如何一步一步简化代码的过程:
第一步:
//写一个递归函数求阶乘
复制代码
第二步:简化递归函数,使用条件运算符代替if else语句
//写一个递归函数求阶乘
int fnf(int n){
int fn;//定义一个整形变量,表示n!
复制代码
第三步:减少变量的定义,把表达式直接作为返回值或参数就形成了第一段简化后的代码。
作者:
984326157
时间:
2015-7-16 10:32
int fnf(int n){
return (n==1?1:fnf(n-1)*n);
}
int main(int argc,const char *argv[])
{
printf("%d! = %d",5,fnf(5));
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2