Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
有人可以帮我确定该语句将在最内层循环中执行多少次吗?
for(int i = 1; i <= n; i++) for(int j = 1; j <= n; j++) for(int k = j; k <= n; k++) //statement
我不太确定如何处理这种形式的问题,我认为如果有人可以概述解决此类问题可能经历的思维过程,这将是一个有用的练习。谢谢你。
因此,第一个循环(使用i)在 thei <= n为真时进行迭代 - 这意味着如果n >= 1,它将迭代n次数。j循环也一样。到目前为止,我们有n * n迭代。
i
i <= n
n >= 1
n
j
n * n
第三个k循环有点棘手,因为它从 开始j,所以第一次,它将从1to运行n,但下一次它从 2 开始,以此类推,直到j == n,它只运行一次。平均而言,这是n/2迭代。
k
1
j == n
n/2
所以这使得n * n * (n+1)/2总迭代。
n * n * (n+1)/2
答案是 n*n*(n+1)/2
为什么留给读者作为练习