100个人编号为1-100,山洞有100盏灯,编号为1-100。

506 阅读1分钟

100个人编号为1-100,山洞有100盏灯,编号为1-100。 人依次过山洞,当人经过【灯编号可以整除人编号】的路灯时,按下开关。假设刚开始灯都是灭的,那么100个人出去以后,有多少盏灯是亮着的。

fun getCount(): Int {
    val arr = IntArray(100) { 0 }
    for (i in 1..100) { // 人
        for (j in i..100) { // 灯若能整除人的编号,则灯的编号不小于人,直接取 i..100。
            if (j % i == 0) {
                arr[j - 1] += 1
            }
        }
    }
    return arr.count { it % 2 == 1 } // 结果为10
}