鱼C论坛

 找回密码
 立即注册
查看: 1167|回复: 2

[已解决]划红线的部分没看懂。。

[复制链接]
发表于 2021-2-13 16:58:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我个人感觉答案应该是2,3,6,7,9
不是很明白为什么只能有三次
最佳答案
2021-2-13 17:34:59
本帖最后由 Daniel_Zhang 于 2021-2-13 17:39 编辑

是这样的,先移掉一个,移掉的不会被打印出来,所以不可能会有 1 被打印,因为已经被移除了,那么第一个打印出来的就是 2,因为它是移除了 1 以后,list 里面最小的

所以 a b d 不选,直接选 c

接着讲解

因为长度变了,变成了 5,但是 for 循环的读取并不会因为你修改了长度而改变,即你第一次读取的是 第 0 位,即使你改变了 list 的长度,下一层 for 循环依旧是读第 1 位的

然后下一次移除了 2 因为它是第二小的,打印的是 3 因为 1,2 移除之后,3最小

之所以只会打印 3 个,如上所述,for 循环不会改变,在执行完第三层后,list 的长度只剩下 3 了,已经读取到了第 2 位(从 0 起),也就不能再读取了(达到了 list 结尾处),自然就退出了

此时结果就是 2, 3, 6
2.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-13 17:34:59 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Daniel_Zhang 于 2021-2-13 17:39 编辑

是这样的,先移掉一个,移掉的不会被打印出来,所以不可能会有 1 被打印,因为已经被移除了,那么第一个打印出来的就是 2,因为它是移除了 1 以后,list 里面最小的

所以 a b d 不选,直接选 c

接着讲解

因为长度变了,变成了 5,但是 for 循环的读取并不会因为你修改了长度而改变,即你第一次读取的是 第 0 位,即使你改变了 list 的长度,下一层 for 循环依旧是读第 1 位的

然后下一次移除了 2 因为它是第二小的,打印的是 3 因为 1,2 移除之后,3最小

之所以只会打印 3 个,如上所述,for 循环不会改变,在执行完第三层后,list 的长度只剩下 3 了,已经读取到了第 2 位(从 0 起),也就不能再读取了(达到了 list 结尾处),自然就退出了

此时结果就是 2, 3, 6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-13 18:18:30 | 显示全部楼层
Daniel_Zhang 发表于 2021-2-13 17:34
是这样的,先移掉一个,移掉的不会被打印出来,所以不可能会有 1 被打印,因为已经被移除了,那么第一个打 ...

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 15:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表