先上正确的代码 这里用到了 一个有意思的公式 ,题目的意思 寻找 只出现一次的数。
A xor A = 0 A xor 0 = A
#include <iostream> #include <vector> #include <algorithm> using namespace std ; int main() { int n ; cin >> n ; if ( n % 2 == 1) { int number ; vector<int> A ; for ( int i = 0 ; i < n ; ++i) { cin >> number ; A.push_back(number) ; } sort(A.begin(),A.end()) ; int answer = 0 ; for ( int i = 0 ; i < n ; ++i) { answer = answer ^ A[i] ; } cout << answer << endl ; } return 0 ; }
</pre><pre name="code" class="cpp">
//下面的代码是能通过部分数据的 ,但是 整体哪里错了 我没找到 , 有人能指正出来最好
#include <iostream> #include <vector> #include <algorithm> using namespace std ; int main() { int n ; cin >> n ; if ( n % 2 == 1) { int number ; vector<int> A ; for ( int i = 0 ; i < n ; ++i) { cin >> number ; A.push_back(number) ; } if ( n == 1) cout << A[0] << endl ; </span>else { bool count[n] ; sort(A.begin(),A.end()) ; for ( int i = 0 ; i < n-1 ; ++i) if(A[i] == A[i+1]) count[i] = true; count[i+1] = true; } for ( int i = 0 ; i < n ; ++i) if(!count[i]) cout << A[i] << endl; return 0 ; }