递归转化为循环

xiaoxiao2021-02-27  216

//将递归转化为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; }
转载请注明原文地址: https://www.6miu.com/read-9352.html

最新回复(0)