打印数组中只出现了一次的数字
法一:
#include <stdio.h>
#include <stdlib.h>
//打印数组中只出现了一次的数字
int Func(int arr[], int size){
int numCount[100] = { 0 };
for (int i = 0; i < size; i++){
numCount[arr[i]]++;
}
for (int i = 0; i < 100; i++){
if (numCount[i] == 1){
return numCount[i];
}
}
return 0;
}
int main(){
int arr[5] = { 1, 2, 3, 1, 2 };
int n = Func(arr, 5);
printf("%d\n", n);
system("pause");
return 0;
}
法二:按位异或
#include <stdio.h>
#include <stdlib.h>
//打印数组中只出现一次的数字
int Func(int arr[], int size){
int ret = 0;
for (int i = 0; i < size; i++){
ret ^= arr[i]; //按位异或
}
return ret;
}
int main(){
int arr[5] = { 1, 2, 3, 1, 2 };
int n = Func(arr, 5);
printf("%d\n", n);
system("pause");
return 0;
}
浙公网安备 33010602011771号