-1

有人可以帮我确定该语句将在最内层循环中执行多少次吗?

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

我不太确定如何处理这种形式的问题,我认为如果有人可以概述解决此类问题可能经历的思维过程,这将是一个有用的练习。谢谢你。

4

2 回答 2

1

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

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

所以这使得n * n * (n+1)/2总迭代。

于 2013-02-26T00:22:40.763 回答
0

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

为什么留给读者作为练习

于 2013-02-26T00:24:34.713 回答