/ * 제목 : 표시 만 남은 자리 세 번 나타날 수 이외에 외부 일단 어레이. * / / * 생각 : 비트 컴퓨팅. * / #INCLUDE <iostream> #INCLUDE <CString을> #INCLUDE <벡터> #INCLUDE <알고리즘> #INCLUDE <지도> 은 USING 스페이스 STD; INT FindNumsAppearOnce {(데이터 [], INT 길이 INT) . IF (길이 <1 || == nullptr 데이터) -1을 리턴; INT = intSize sizeof의 (INT) * 8]. INT BITSUM [intSize] = {0} // 숫자 1 계산 I 0 = (INT를 들어, I <길이; I ++ ) { INT BISMASK = 0; - (; J> = 0 J) {INT 1 J = intSize.위한 & 1) BITSUM [J] + = ((데이터 [I] >> BISMASK). BISMASK ++; 3의 정수가 아닌 배수 // 당신이 나타납니다, 비트 번호는 한 번만 나타납니다 속하는 INT BISMASK = 0; INT RES = 0; 에 대한 (INT I = -intSize 1; I> = 0;. I -) { IF ([I] == BITSUM 3. 1 %). { RES = + (1 << BISMASK.) BISMASK ++; } } 리턴 RES; } INT의 main () { INT 데이터 [] = {2,2,2,3, } 6,4,5,5,4,6,6,5,4,32,32,32; COUT << FindNumsAppearOnce (데이터 sizeof의 (데이터) / sizeof의 (데이터 [0])); }