编程实现:一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(使用位运算)

mac2026-01-14  7

编程实现: 一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。 请找出这个数字。(使用位运算) 使用异或运算 0^1=1 0^0=0 1^1=0

#include <stdio.h> #include<stdlib.h> int main(){ int arr[] = { 2, 2, 3, 3, 5, 5, -1, 6, 6 }; int num = 0; int len = sizeof(arr) / sizeof(arr[0]); for (int i = 0; i < len; i++){ num ^= arr[i]; //异或 相同为0相反为1 若数组中有两个一样的数,则num不变,若只有一个,则变为那个数 } printf("%d\n", num); system("pause"); return 0; }
最新回复(0)