瞪眼法可知,奇数*奇数=奇数 奇数*偶数=偶数 偶数*偶数=偶数
所以只要有奇数,结果一定可以为奇数;一旦没有奇数,再怎么选都不可能使乘积为奇数。
与运算(&)求奇偶:
通过 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);
}

京公网安备 11010502036488号