我几天前参加了考试,今天教练给了我们考试的关键答案。
其中一个问题是
for ( j = 9; j >= 1; j-- )
计算操作次数
结果是20。
任何人都可以解释他是如何从中获得20次操作的吗?
答案 0 :(得分: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
for(j = n; j> = 0; j--)
好的,你从两个操作开始:
对于所有n< 0,它停在那里。
如果n = 0,你会得到一个aditional:
对于n = 1,你会得到另一组。
因此,对于n< 0,操作次数为2;对于n> = 0,操作次数为2n + 4。
这些事情并不那么难。你只需要像计算机一样思考并仔细记录状态的任何变化(变量集)。
答案 1 :(得分:3)
好吧,在第一次迭代中,j
设置为9
。之后,每次迭代基本上执行相同的两条指令:
j >= 1
和j
(j--
)。这样做了9次(从9
包含到0
包含)。在最后一次迭代中,我们再次测试是否j >= 1
,因为这是假的,我们退出循环。因此,我们得到1 + 9 * 2 + 1 = 20次迭代。
答案 2 :(得分:0)
你写下了什么价值?好奇。
让我们一起算吧,玛雅:
for (j = 9; j >= 1; j--)
一个用于将9分配给j = 1; 对于循环的每次迭代,j的当前值与1的比较= 10; 除了最后一个迭代= 9之外,循环的每次迭代都有一个减量j;
1 + 10 + 9 = 20在我的书中。
答案 3 :(得分:0)
你有1个任务(j = 9)。 “j--”操作将运行9次;条件检查“j> = 1”将运行10次(每次迭代你问的问题是“是j> = 1”),最后一次会失败。所以你有1 + 9 + 10 = 20。
如果他的教练如此卑鄙以至于不提供帮助,那么你的教练非常非常糟糕。这是你要么得到的问题之一。教练应该提供帮助。 :)