将伪代码表示为n的函数

时间:2013-10-18 00:42:00

标签: algorithm pseudocode

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

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的线 但我不认为那是对的。有人可以解释这是否正确,如果是假的话,我应该怎样才能得到正确答案。

1 个答案:

答案 0 :(得分: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)

然后你在这里再做一些工作来得到你的最终答案。