题目 #
You are given a positive integer n.
Let even denote the number of even indices in the binary representation of n (0-indexed) with value 1.
Let odd denote the number of odd indices in the binary representation of n (0-indexed) with value 1.
Return an integer array answer where answer = [even, odd].
Example 1:
Input: n = 17
Output: [2,0]
Explanation: The binary representation of 17 is 10001.
It contains 1 on the 0th and 4th indices.
There are 2 even and 0 odd indices.
Example 2:
Input: n = 2
Output: [0,1]
Explanation: The binary representation of 2 is 10.
It contains 1 on the 1st index.
There are 0 even and 1 odd indices.
```
Constraints:
- 1 <= n <= 1000
# 思路1
## 分析
- 照着做
## 代码
```go
func evenOddBit(n int) []int {
res := []int{0, 0}
isOdd := false
for n > 0 {
if n&0x01 == 1 {
if isOdd {
res[1]++
} else {
res[0]++
}
}
n >>= 1
isOdd = !isOdd
}
return res
}