首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

递归函数终极会结束,那么这个函数一定(不定项选择)

2012-07-28 
递归函数最终会结束,那么这个函数一定(不定项选择)1:使用了局部变量;2:有一个分支不调用自身;3:使用了全局

递归函数最终会结束,那么这个函数一定(不定项选择)
1:使用了局部变量;
2:有一个分支不调用自身;
3:使用了全局变量或者使用了一个或多个参数;

第二个肯定是对的,就是不知道1、3是不是对的,大家能不能解释的详细点,谢谢了哈

[解决办法]
1 不对,局部变量明显会每次调用初始化,和3正好相反
[解决办法]
1是不对的,比如求阶乘的函数就可以不适用局部变量。

C/C++ code
int fn(int n){        if(n == 1)                return 1;        else                return n * fn(n - 1);}
[解决办法]
3不对,虽然使用全局变量或使用一个或多个参数的确可以控制递归的结束,但不是只有这两种方式,而题目中指出了"一定"。
另外的方式有局部静态变量和异常。异常比如内存空间不足、除零异常都可以让递归函数终止。 

热点排行