我是一名有用的助手,可以帮您进行文本翻译。以下是需要翻译的内容:
几天前我参加了一场考试,今天老师给我们发了考试答案。
其中一个问题是
for ( j = 9; j >= 1; j-- )
Count the Number of operations
结果是20。
有人能解释一下他是怎么从那里得到20个操作的吗?
几天前我参加了一场考试,今天老师给我们发了考试答案。
其中一个问题是
for ( j = 9; j >= 1; j-- )
Count the Number of operations
结果是20。
有人能解释一下他是怎么从那里得到20个操作的吗?
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
对于( j=n ; j>=0 ; j-- ):
首先执行两个操作:
当n<0时,程序就停止了。
如果 n=0,则多执行了以下两个操作:
当n=1时,则需要再执行一组以上操作。
因此,总操作次数为2(当n<0)或 2n+4(当n≥0)。
这些操作并不难。你只需要像计算机一样思考,并仔细记录任何状态(变量集)的更改即可。
在第一次迭代中,j
被设置为9
。之后,每次迭代基本上执行相同的两个指令:
j >= 1
是否成立;j
(j--
)。这样做九次(从9
(含)到0
(含))。在最后一个迭代中,我们再次测试j >= 1
是否成立,由于不成立,我们退出循环。因此,我们得到1 + 9 * 2 + 1 = 20次迭代。
你有1个任务(j=9)。"j--"操作将运行9次;条件检查"j>=1"将运行10次(每次迭代都会问问题"j>=1"),最后一次将失败。所以你有1+9+10=20。
如果你的教练如此刻薄,不提供帮助,那么他非常非常糟糕。这是那种你要么懂得答案,要么不懂得答案的问题。教练应该提供帮助。 :)
for (j = 9; j >= 1; j--)
将9分配给j = 1; 每次循环比较j的当前值与1 = 10; 除了最后一次迭代外,每次迭代都会减少j = 9;
在我的书中,1 + 10 + 9 = 20。