下面给出了一个C函数,用于计算某个范围内的整数之和。可以假定begin总是小于或等于end(begin<=end): int summation(int begin,int end)(int result=begin; begin=begin+1; while(begin<=end){ result=result+begin; begin=begin+1; } return result; } 重写这个函数,使之使用递归而不是迭代。
A.必须有一个明确的结束条件
B.每次进入更深一层递归时,问题规模相比上次递归都应有所减少
C.递归调用效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧
D.由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)
A.函数的递归调用必须有一个明确的结束条件
B.函数的递归调用每次进入更深一层递归时,问题规模相比上次递归都应有所减少
C.函数的递归调用效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈)
D.函数的递归调用由于栈的大小是无限的,所以,递归调用的次数过多,也不会导致栈溢出
计算多项式Pn(x) –a0xn十a1xn-1+a2xn-2+…+an-1x十an的值, 通常使用的方法是一种嵌套的方法。它可以描述为如下迭代形式:bv=av,bi+1=x×bi+ai+1, i=0, 1,…,n-l。若设bn=Pn(x) , 则问题可以写为如下形式:Pn(x) =x×Pn-1(x)+an, 此处, Pn-i(x) =avxn-1+a1xn-2+…+an-2x+an-1, 这是问题的递归形式。试编写一个函数, 计算这样的多项式的值。