链接:
https://codeforces.com/problemset/problem/25/A
题意
给你一个长度为n的数组,找出里面唯一与其他数字均匀度不一样的数字的位置,从1开始数。
3 ≤ n ≤ 100
Example
input
5
2 4 7 8 10
output
3
input
4
1 2 1 1
output
2
解析
这题的均匀度的意思其实就是数字的奇偶性,就是找出数组中那个唯一的奇数或者偶数,那个数的位置就是所要找的答案。
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int cnt_even = 0, cnt_odd = 0;
int position_even = 0, position_odd = 0;
for (int i = 0; i < n; i++)
{
int x;
cin >> x;
if (x & 1)
{
cnt_odd++;//记录奇数个数
position_odd = i + 1;//不断更新奇数的位置
}
else
{
cnt_even++;//记录偶数个数
position_even = i + 1;//不断更新偶数位置
}
}
//因为只有一个数与其他数不同,所以记录那个数的位置的值只有更新一次
if (cnt_odd == 1) cout << position_odd << endl;
else cout << position_even << endl;
return 0;
}