瞪眼法可知,奇数*奇数=奇数 奇数*偶数=偶数 偶数*偶数=偶数

所以只要有奇数,结果一定可以为奇数;一旦没有奇数,再怎么选都不可能使乘积为奇数。

与运算(&)求奇偶:

通过 n&1 二进制下判断末尾是否为1,为1就是奇数,为0就是偶数,效果与n%2==0相同,但是效率高。

二进制1001 十进制1*2^3 + 0*2^2 + 0*2^1 + 1*2^0 = 9

二进制1000 十进制1*2^3 + 0*2^2 + 0*2^1 + 0*2^0 = 8

#include <iostream>
using namespace std;

int main() {
    int n,t,a=0;
    cin>>n;
    while(n--){
        cin>>t;
        a+=t&1;
    }
    cout<<(a==0?-1:a);
}