我该如何解决Pseudocode +函数

时间:2010-11-19 09:32:21

标签: 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)的值

请告诉我一步一步计算

抱歉我的英语很差..

1 个答案:

答案 0 :(得分:1)

在真实语言(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(3) = 3 * f(2) + 9

然后评估f(2)

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

我们再次需要f(1)

f(1) = 0

重新开始

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

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

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

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