HDU-2095 find your present (2) 按位异或求解
题目是给定一个数字串,求出这些数字串中哪些出现的次数是奇数次,所以运用按位异或就能够直接将出现偶数次的数字抵消掉。不加输入外挂G++ 500MS+加了之后62MS
代码如下:
#include <stdio.h> void getint( int &c ) { char chr; while( chr= getchar(), chr< '0'|| chr> '9' ) ; c= chr- '0'; while( chr= getchar(), chr>= '0'&& chr<= '9' ) { c=c* 10+ chr- '0'; } } int main() { int N; while( getint( N ), N ) { int temp= 0; for( int i= 1; i<= N; ++i ) { int c; getint( c ); temp^= c; } printf( "%d\n", temp ); } }