1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
package main
import (
"fmt"
)
// 异或运算的应用
func main() {
a := [...]int{1, 2, 3, 3, 2, 1, 6, 9, 8, 8, 6} // 应该找出的是9
n := a[0]
for i := 1; i < len(a); i++ {
n ^= a[i]
}
// 第一次循环:n= a[0]^a[1]
// 第二次循环:n= a[0]^a[1]^a[2]
// ...
// 最后一次循环:n= a[0]^a[1]^a[2]...^a[10]
// 根据异或运算的,交换律,结合律,所有出现2次的数据,先结合,结果是0,然后0与0异或还是0,最后剩一个只出现一次的数据,和0异或,是它本身,所以n最后的值,就是哪个出现了一次的数据,打印即可;
fmt.Println(n)
}
D:\workstation\mycode\gocode\src\learngo\basic_grammar\03_data_type>03_data_type.exe
9
|