Update solution 0319

This commit is contained in:
halfrost
2021-11-19 21:21:21 +08:00
committed by halfrost
parent f6f37533b1
commit 1bce2a9193

View File

@ -1,4 +1,4 @@
# [319. Bulb Switcher](https://leetcode-cn.com/problems/bulb-switcher/)
# [319. Bulb Switcher](https://leetcode.com/problems/bulb-switcher/)
## 题目
@ -31,21 +31,22 @@ Return the number of bulbs that are on after n rounds.
## 题目大意
初始时有n个灯泡处于关闭状态。第一轮,你将会打开所有灯泡。接下来的第二轮,你将会每两个灯泡关闭一个。
初始时有 n 个灯泡处于关闭状态。第一轮,你将会打开所有灯泡。接下来的第二轮,你将会每两个灯泡关闭一个。
第三轮,你每三个灯泡就切换一个灯泡的开关(即,打开变关闭,关闭变打开)。第i轮,你每i个灯泡就切换一个灯泡的开关。直到第n轮,你只需要切换最后一个灯泡的开关。
第三轮,你每三个灯泡就切换一个灯泡的开关(即,打开变关闭,关闭变打开)。第 i 轮,你每 i 个灯泡就切换一个灯泡的开关。直到第 n 轮,你只需要切换最后一个灯泡的开关。
找出并返回n轮后有多少个亮着的灯泡。
找出并返回 n 轮后有多少个亮着的灯泡。
## 解题思路
- 计算1到n中有奇数个约数的个数
- 1到n中的某个数x有奇数个约数,也即x是完全平方数
- 计算1到n中完全平方数的个数sqrt(n)
- 计算 1 到 n 中有奇数个约数的个数
- 1 到 n 中的某个数 x 有奇数个约数,也即 x 是完全平方数
- 计算 1 到 n 中完全平方数的个数 sqrt(n)
## 代码
```go
package leetcode
import "math"
@ -53,4 +54,5 @@ import "math"
func bulbSwitch(n int) int {
return int(math.Sqrt(float64(n)))
}
```