Recursion 如何解决伪代码+;功能

Recursion 如何解决伪代码+;功能,recursion,Recursion,如果函数f的条件为: function f(x : integer) : integer; begin if x = 1 then f = 0 else f = x * f(x - 1) + x^2 end; 求f(4)的值 请把计算的步骤给我看一下 对不起,我的英语很差。用真实语言(Python)编写的代码如下: def f(x): return 0 if x == 1 else x * f(x - 1) + pow(x, 2) 下降 假设我们从x=4开始 f(4) = 4 * f

如果函数f的条件为:

function f(x : integer) : integer;
begin
if x = 1 then
f = 0
else
f = x * f(x - 1) + x^2
end;
求f(4)的值

请把计算的步骤给我看一下

对不起,我的英语很差。

用真实语言(Python)编写的代码如下:

def f(x):
    return 0 if x == 1 else x * f(x - 1) + pow(x, 2)
下降 假设我们从
x=4开始

f(4) = 4 * f(3) + 16
所以我们需要评估
f(3)

然后计算
f(2)

同样,我们需要
f(1)

回来 现在我们有了所需的所有值,我们可以返回表达式堆栈:

f(2) = 2 * 0 + 4 = 4

f(3) = 3 * 4 + 9 = 21

f(4) = 4 * 21 + 16 = 100

你能告诉我你是怎么尝试的吗?你有什么问题吗?还有,你用什么语言写的?我试着用x=4,f(x)=x*f(x-1)+x^2,f(4)=4*f(3)*16,但我不知道下一步怎么做。。现在我知道了,谢谢你的建议:谢谢!顺便说一句,我刚在朋友的帮助下解决了。。f=4*(3*f(2)+9)+16 f=4*(3*(2*f(1)+4)+9)+16 f=4*(3*(2*0+4)+9)+16 f=4*(3*(4)+9)16 f=4*(21)+16 f=84+16 f=100f(1)=0,这就是为什么你的计算偏离了OP。不过解释得很好+1修改答案,使
f(1)=0
f(2) = 2 * f(1) + 4
f(1) = 0
f(2) = 2 * 0 + 4 = 4

f(3) = 3 * 4 + 9 = 21

f(4) = 4 * 21 + 16 = 100