0

我想表达这个伪代码作为函数返回的内容。

function mystery(n)
    r := 0
    for i:= 1 to n-1 do
        for j:= i+1 to n do
            for k:= 1 to j do
                r:= r+1
    return r

我相信它可能类似于 f(n) = n*(n-1)^2 但我认为这不太正确。有人可以解释这是否正确,如果错误,那么我应该如何得出正确的答案。

4

1 回答 1

1

一次循环计算函数:

for k:= 1 to j do
    r:= r+1

调用这个函数K(j)。应该很明显了K(j) = j

现在让我们进行一个循环:

for j:= i+1 to n do
    r:=r+K(j)

调用这个函数J(i)。做更多的工作,你应该看到J(i) = (i+1) + (i+2) + ... + n。这种总和有一个数学公式(我会留给你来解决这个问题)。

现在终于,最后一个循环:

for i:= 1 to n-1 do
    r:=r+J(i)

然后你在这里做更多的工作来得到你的最终答案。

于 2013-10-18T00:52:20.337 回答