位运算&1

输入

3
1
2
1

输出

复制
0
很显然与的拿一窜字符/数字其实就是1,也就是&1,也就是说我们只需要最后判断牛牛当前位置是一个奇数还是一个偶数

#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
//c(n,k)*c(m,k)*k! 
inline int read()
{
    int x=0,f=1;char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    return x*f;
}
const int maxn=1e6+100;
char a[maxn];
const int mod=1e9+7;
int main() {
    int t;
    cin>>t;
    int sum=0; 
    while(t--){
        scanf("%s",a);
        int len=strlen(a);
        int ans=0;
        for(int i=0;i<len;i++){
            ans=ans*10+(a[i]-'0');
            ans%=2;
        } 
        sum=(sum+ans)%2;    
    }
    cout<<sum<<endl;
}



原文地址:https://www.cnblogs.com/lipu123/p/14130337.html