将100和灯泡编成100个号,即:1……100,现在有100个人去拉开关,第一个人把1的倍数的灯号开关都拉一下,第2个人把2的倍数的灯号都拉一下,直到第100人将100号灯泡拉一下.假定开始时,灯泡全

Posted huzhuhua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将100和灯泡编成100个号,即:1……100,现在有100个人去拉开关,第一个人把1的倍数的灯号开关都拉一下,第2个人把2的倍数的灯号都拉一下,直到第100人将100号灯泡拉一下.假定开始时,灯泡全相关的知识,希望对你有一定的参考价值。

想到之前面试的一道题目,解决这个题,就是看到 其约数为基数个时就是亮的。用JS去实现也很简单,两个for循环可以了。个人的解答方法如下

    let lightArr = []
    // 先循环一遍1到100
    for (let index = 1; index <= 100; index++) {
        let arr = []
        for (let j = 1; j <= index; j++) {
            // 如果index % j等于0则表示j是其index的约数就是往arr里面添加
            if (index % j == 0) arr.push(j)
        }
        // 后面再判断下arr的长度如果是奇数时则最后是亮的
        if (arr.length % 2 !== 0) lightArr.push(index)
    }
    console.log("最后灯泡是亮的lightArr里面的值")

最后的结果 是[1, 4, 9, 16, 25, 36, 49, 64, 81, 100] 

以上是关于将100和灯泡编成100个号,即:1……100,现在有100个人去拉开关,第一个人把1的倍数的灯号开关都拉一下,第2个人把2的倍数的灯号都拉一下,直到第100人将100号灯泡拉一下.假定开始时,灯泡全的主要内容,如果未能解决你的问题,请参考以下文章

灯泡编程题-java

开关灯问题

百度百灯问题

如何在Java中实现画图功能并在文本中显示坐标

1—100中所有的质数?

leetcode-灯泡开关 Ⅱ