-
Notifications
You must be signed in to change notification settings - Fork 0
/
319.hpp
49 lines (36 loc) · 1.16 KB
/
319.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#ifndef LEETCODE_319_HPP
#define LEETCODE_319_HPP
#include <iostream>
#include <queue>
#include <algorithm>
#include <vector>
#include <unordered_map>
#include <unordered_set>
#include <set>
#include <numeric>
#include <cmath>
using namespace std;
/**
There are n bulbs that are initially off. You first turn on all the bulbs.
Then, you turn off every second bulb. On the third round,
you toggle every third bulb (turning on if it's off or turning off if it's on).
For the ith round, you toggle every i bulb.
For the nth round, you only toggle the last bulb.
Find how many bulbs are on after n rounds.
Example:
Given n = 3.
At first, the three bulbs are [off, off, off].
After first round, the three bulbs are [on, on, on].
After second round, the three bulbs are [on, off, on].
After third round, the three bulbs are [on, off, off].
So you should return 1, because there is only one bulb is on.
*/
class Solution {
public:
// 只有平方数的因子为奇数个,其余不管是不是质数,因子都是偶数个
// 有多少个因子,开关就要调整多少次
int bulbSwitch(int n) {
return (int) sqrt(n);
}
};
#endif //LEETCODE_319_HPP