递归转化为循环

来源:互联网 发布:excel如何合并数据 编辑:程序博客网 时间:2024/05/21 13:58

//将递归转化为for循环看例子

将递归转为for循环需要求解递归关系,知道递归关系后就可以使用循环来实现。
如下示例 求解后知//f(n) = n * f(n - 1);

代码详解如下:

/** 求阶乘 */int factorial(int n){    static int calculateCount = 0;    printf("calculate count is %d\n", calculateCount++);    if (n <= 1) {        return n;    }else{        return n * factorial(n - 1);    }}/** 求阶乘For循环来实现 */int factorialFor(int n){    int result = 1;    for (int i = 1; i <= n; i++) {        result = result * i;        static int calculateCount = 0;        printf("calculate count is %d\n", calculateCount++);    }    return result;}
原创粉丝点击