【小试牛刀】
改编一下这个题目,看看如何实现,从而希望读者对累次迭代有更深入的体会.
改编1:
有n个灯泡排成一排,现在拉第m次开关,如果m与灯泡的编号互质,则该处灯泡点亮,否则该处的灯泡关闭,该如何实现?
具体实现请看网址:https://www.netpad.net.cn/svg.html#posts/60625.
提示:在这个问题中,需不需要用累次迭代?答案是:不需要.
为什么呢?因为灯泡的状态只由变量t和变量m决定,最关键的是灯泡的状态和它之前的状态没有关系,编号为t的灯泡的状态直接可以用变量t和变量m的表达式得到,所以生成编号为t的灯泡的状态不需要进行迭代了.(https://www.daowen.com)
改编2:
有n个灯泡排成一排,现在拉第m次开关,如果m与灯泡的编号互质,则该处的灯泡状态不变,否则改变该处灯泡的状态(打开的灯关闭,关闭的灯打开),当m=1时,全部打开,该如何实现?
具体实现请看网址:https://www.netpad.net.cn/svg.html#posts/60721.
提示:这个问题中需要用到累次迭代吗?答案是:需要.
因为每一个灯泡的状态都和它上次拉开关时灯泡的状态有关,所以进行迭代时,每次都必须记住灯泡上次的状态,利用这个状态来决定该灯泡当前的状态.