A、if n>1 then return 1 else return n+f(n-1)
B、if n>1 then return 1 else return n+f(n+1)
C、if n<1 then return 0 else return n+f(n-1)
D、if n<1 then return 0 else return n+f(n+1)
查看答案
正确答案
试题解析
解析:递归函数的目的是执行一系列调用,一直到达某一点,序列终止。为了保证递归函数正常执行,应该遵守下面的规则: (1)每当一个递归函数被调用时,程序首先应该检查其基本的条件是否满足,例如,某个参数的值等于零,如果是这种情形,函数应停止递归。 (2)每当函数被递归调用时,传递给函数一个或多个参数,应该以某种方式变得“更简单”。即这些参数应该逐渐靠近上述基本条件。例如,一个正整数在每次递归调用时会逐渐变小,以至最终其值能到达零。 在本题中,f(n)的功能是解决1+2+…+n的累加问题,可用下面的递归公式表示f(n): f(n)=0 (n=0) f(n)=n+f(n-1) (n1) 因此可知,f(n)应采用的代码段为: if n1 then return 0 else return n+f(n-1)。