守望者--AIR技术交流

标题: 编程算法之递归阶乘法 [打印本页]

作者: yaoyuan0701    时间: 2015-4-18 23:58
标题: 编程算法之递归阶乘法
递归算法也是一种常用的算法思想,使用该算法有时可有效的解决一些问题,往往可以简化代码的编写,提高程序的可读性,但若有不合适的递归反而会导致程序的执行效率变低。  

所谓递归算法,就是在程序里不断反复调用自身来求解问题的方法,这里强调的重点是调用自身,就得要等待求解的问题能够分解为相同问题的一个子问题,这样通过多次递归调用,便可完成求解。
递归算发的具体实现过程一般通过函数来完成,在函数的内部,编写代码直接或者间接的调用函数自己,即可完成递归操作。
理解递归算法的最简单例子就是:编写程序求n的阶乘。
  1.     // 编程算法之递归阶乘.cpp : 定义控制台应用程序的入口点。  
  2.     //  
  3.       
  4.     #include "stdafx.h"  
  5.       
  6.     int fact(int i)  
  7.     {  
  8.         if (i<=1)  
  9.         {  
  10.             return 1;  
  11.         }  
  12.         else  
  13.         {  
  14.             return i*fact(i-1);  
  15.         }  
  16.     }  
  17.     int _tmain(int argc, _TCHAR* argv[])  
  18.     {  
  19.         printf("%d",fact(4));  
  20.         return 0;  
  21.     }  
复制代码
http://blog.csdn.net/yaoyuan0701/article/details/45066635





欢迎光临 守望者--AIR技术交流 (http://www.airmyth.com/)