//将递归转化为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;
}