返回信息流本人最近在自学算法,看到了开灯问题,假设灯的编号从1到20,首先把灯全打开,第i个人会按i的倍数的开关,那么编号为1的灯是不是永远不会关闭?求大侠们指导
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #95297同步于 2018/3/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
【问题】关于开灯问题算法疑问
thuuwooh11
2018/3/30镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
首先灯全开,第一个人把所有的灯又全关了,第二个开2,4,6,8...编号为1的灯应该永远是关闭的把。你可以顺便看下这道题:
https://leetcode.com/problems/bulb-switcher/description/
因为你遍历到的数字num, num可以分解成a*b,c*d等等。
然后num每次遇到a,就会被拨一次,遇到b,又被拨一次。
如果num不是平方数,就会被拨偶数次,如果是平方数,num=e*e,在e的时候,只被拨一次,就被拨了基数次。
这个灯就是灭的。剩余的都是亮的。