如何计算执行for循环期间发生的操作数?

5 algorithm for-loop

我几天前参加了考试,今天教练给了我们考试的关键答案.

其中一个问题是

for ( j = 9; j >= 1; j-- )
Run Code Online (Sandbox Code Playgroud)

计算操作次数

结果是20.

谁能解释他是如何从中获得20次操作的?

Too*_*the 14

20个操作:

set j = 9
check if j(9) >= 1
set j to 8
check if j(8) >= 1
set j to 7
check if j(7) >= 1
set j to 6
check if j(6) >= 1
set j to 5
check if j(5) >= 1
set j to 4
check if j(4) >= 1
set j to 3
check if j(3) >= 1
set j to 2
check if j(2) >= 1
set j to 1
check if j(1)>=1
set j to 0
check if j(0)>=1
Run Code Online (Sandbox Code Playgroud)

for(j = n; j> = 0; j--)

好的,你从两个操作开始:

  • (J = n)的
  • 检查(j> = 0).

对于所有n <0,它停在那里.

如果n = 0,你得到一个aditional:

  • j--
  • 检查(j> = 0).

对于n = 1,你会得到另一组.

因此,对于n <0,操作次数为2,对于n> = 0,操作次数为2n + 4.

这些事情并不那么难.您只需要像计算机一样思考并仔细记录状态的任何变化(变量集).