使用递归函数要注意的问题总结:
1 考虑开销,本质上说,任何一个递归函数的功能都可以用循环来代替,但是递归函数的开销相对要大了很多,因为每调用一次函数,系统都有很多的压栈和出栈的工作,这些都是很大的开销
2 合理使用递归函数可以提高程序的可读性,但是我们要注意的是 ,我们要综合考虑效率和可读性的平衡
3 递归函数退出条件的编写要正确,否则容易出现无穷递归,导致程序当机情况的产生
例子:求阶乘!这是面试最容易考的题目
int facorial(int value)
{
if (value==1)
return (1);
else
return (value* facorial(value-1));
}
循环函数
int facorial(int value)
{int result;
for(int i=1;i<=value;i++)
result =result*value;
return result;
}