如果函数中没有出现对其自身的调用语句,则该函数一定不是递归的函数
1个回答
关注
展开全部
“如果函数中没有出现对其自身的调用语句,则该函数一定不是递归的函数”,该命题是不正确的,应该这样来说:若函数中没有出现对其自身的调用语句,那么有可能此函数不是递归函数。我将在下方详细说明原因。
咨询记录 · 回答于2022-12-05
如果函数中没有出现对其自身的调用语句,则该函数一定不是递归的函数
“如果函数中没有出现对其自身的调用语句,则该函数一定不是递归的函数”,该命题是不正确的,应该这样来说:若函数中没有出现对其自身的调用语句,那么有可能此函数不是递归函数。我将在下方详细说明原因。
亲亲,在回答您的问题之前,首先需要弄明白递归函数是什么,它是指一个函数的函数体中直接调用或间接调用了该函数自身。从定义不难看出,它的调用模式包括直接调用与间接调用两种,直接调用:指一个函数的函数体中含有调用自身的语句,这正是您题设中所说得那样;但是,还有间接调用呢,间接调用:指一个函数在函数体里调用了其它函数,而其它函数又会调用该函数的情况,它也是递归函数的一种调用形式,然而,您上述的题设里并不包含这部分,因此,您提问的命题是错误的。
亲~为了您能理解得更透彻些,我再举例给您讲讲:先举递归函数直接调用的例子,比如有函数fun(int i) {if(i==1) return 1; else return fun(i-1)*i;}这显然是在fun函数体内直接调用自身;接着举递归函数间接调用的例子,譬如fac(int n) {int sum;if(n==1) sum=1; else sum=go(n); return sum;} go函数的定义为go(int n){return fac(n-1)+n;},这里fac函数体中并没有调用自身,而是通过go函数间接调用了自己。经过这样细致地举例比较,相信您应该能弄懂递归调用的两种不同形式,进而明白您题设不正确的原因了。以后只要有程序方面的问题,您都可以与我交流沟通哦!祝您学习编程越来越轻松,晚安好梦!