准确地确定程序中的执行次数

时间:2013-02-26 00:17:42

标签: c++ math

有人可以帮我确定语句在最内层循环中执行的次数吗?

for(int i = 1; i <= n; i++)
    for(int j = 1; j <= n; j++)
        for(int k = j; k <= n; k++)
            //statement

我不确定如何处理这种形式的问题,我认为如果有人可以勾勒出可能解决这个问题的思维过程,那将是一项有益的练习。谢谢。

2 个答案:

答案 0 :(得分:1)

因此,第一个循环(使用i)在i <= n为真时进行迭代 - 这意味着如果n >= 1,它将迭代n次。 j循环相同。到目前为止,我们有n * n次迭代。

第三个k循环有点棘手,因为它从j开始,所以第一次,它将从1运行到n,但下次它从2开始,等到j == n,它只运行一次。平均而言,这是n/2次迭代。

所以这总共进行了n * n * (n+1)/2次迭代。

答案 1 :(得分:0)

答案是n * n *(n + 1)/ 2

为什么留给读者做练习