我想表达这个伪代码作为函数返回的内容。
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的线 但我不认为那是对的。有人可以解释这是否正确,如果是假的话,我应该怎样才能得到正确答案。
答案 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)
然后你在这里再做一些工作来得到你的最终答案。