黑马程序员技术交流社区

标题: 递归方法求阶乘的优化过程 [打印本页]

作者: 984326157    时间: 2015-7-16 10:29
标题: 递归方法求阶乘的优化过程

题目:请用递归方法5!。简化后的代码如下:
  1. #include <stdio.h>
复制代码
只有两个函数,每个函数中一句代码,虽然可读性不高,但是很精简。一次我肯定不能写出来,这就是靠一步一步的优化得到的。面就说说我是如何一步一步简化代码的过程:
第一步:
  1. //写一个递归函数求阶乘
复制代码
第二步:简化递归函数,使用条件运算符代替if else语句
  1. //写一个递归函数求阶乘
  2. int fnf(int n){
  3. 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