标签:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
/*
有101个整数,
其中有50个数出现了两次,
1个数出现了一次,
找出出现了一次的那个数。
*/
/*
思路:
出现两次的数进行异或为0,
故将整个数组的数进行异或,
则得到此只出现一次的那个数
*/
int isOdd(int num);
int getOne(int *arr, int length);
int main(){
int number = 0; //整数个数
scanf("%d",&number);
if (!isOdd(number)) //判断是否是奇数
printf("Please input an odd number.\n");
else{
int * numbers = (int*)malloc(number * sizeof(int)); //存储这number个整数
printf("Please input %d number: \n",number);
int tmp;
for (int i = 0; i < number; ++i){
scanf("%d",&tmp);
numbers[i] = tmp;
}
printf("%d\n",getOne(numbers,number));
}
system("pause");
return 0;
}
int isOdd(int num){
if (num % 2 == 0)
return 0;
else
return 1;
}
int getOne(int *arr, int length){
int num = 0;
for (int i = 0; i < length; ++i)
num ^= arr[i];
return num;
}
标签:
原文地址:http://www.cnblogs.com/mutaohengheng/p/5104728.html