2021.11.15 - 151.灯泡开关

1. 题目

在这里插入图片描述
在这里插入图片描述

2. 思路

(1) 找规律

  • 这道题的本质是求i的因子个数,若i的因子个数为奇数,则灯泡i最后是亮的。
  • 对于任意一个数,其因子必然是成对出现的,如10的因子2和5,但是,对于开平方结果为整数的数,由于存在两个因子相等,如9的因子3,因此,其因子个数为奇数。
  • 通过列出前10个灯泡的结果可以发现,最后亮着的灯泡数量正好是(int)Math.sqrt(n)。

3. 代码

public class Test {
    
    
    public static void main(String[] args) {
    
    
    }
}

class Solution {
    
    
    public int bulbSwitch(int n) {
    
    
        return (int) Math.sqrt(n);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_44021223/article/details/121330109