有人可以帮我确定语句在最内层循环中执行的次数吗?
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
for(int k = j; k <= n; k++)
//statement
我不确定如何处理这种形式的问题,我认为如果有人可以勾勒出可能解决这个问题的思维过程,那将是一项有益的练习。谢谢。
答案 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
为什么留给读者做练习