思路:
设置一个数组a,a[i]表示数i出现的次数。
解答:
#include <cstdio>
#include <cstring>
using namespace std;
int main() {
int data_num;
while(scanf("%d", &data_num) != EOF) {
// 保存输入的数据
int data[data_num];
for(int i = 0; i <= data_num - 1; i++) {
scanf("%d", &data[i]);
}
// 计算输入的数的最大值
int max_data = data[0];
for(int i = 1; i <= data_num - 1; i++) {
if(data[i] > max_data)
max_data = data[i];
}
// 初始化保存出现次数的数组
int a[max_data + 1];
memset(a, 0, sizeof(a));
// 遍历所有的数据,计算出现次数
for(int i = 0; i <= data_num - 1; i++) {
a[data[i]]++;
}
// 遍历所有数据,遇到出现次数为1的就输出并跳出循环。如果最后一个数的出现次数仍不为1则输出None
for(int i = 0; i <= data_num - 1; i++) {
if(a[data[i]] == 1) {
printf("%d\n", data[i]);
break;
}
if(i == data_num - 1 && a[data[i]] != 1) {
printf("None\n");
}
}
}
return 0;
}