已知递归函数f(n)的功能是计算1+2+…+n,且n≥1,应采用的代码段是______。

admin2007-03-10  39

问题 已知递归函数f(n)的功能是计算1+2+…+n,且n≥1,应采用的代码段是______。

选项 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)

答案C

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

随机试题
最新回复(0)