题解 | #异或和#

异或和

https://www.nowcoder.com/practice/27e4dbdf6975414fbef67309311916f9

把所有数按顺序直接异或一遍即可,因为同一个数出现偶数次会在异或中抵消为 0,最后剩下的就是出现奇数次的数字异或和。

void solve(){
    int n=0,c=getchar();
    while(c<'0'||c>'9')c=getchar();
    while(c>='0'&&c<='9'){
        n=n*10+c-'0';
        c=getchar();
    }
    int ans=0;
    for(int i=0;i<n;++i){
        int x=0;
        c=getchar();
        while(c<'0'||c>'9')c=getchar();
        while(c>='0'&&c<='9'){
            x=x*10+c-'0';
            c=getchar();
        }
        ans^=x;
    }
    cout<<ans<<endl;
}
全部评论

相关推荐

04-11 21:48
门头沟学院 C++
钱嘛数字而已:警告是为了什么,为了表明老师尽责了,你校外出事不是老师和学校的锅。 只要你找到了工作,提升了就业率,还处分你干什么,导员只会笑嘻嘻说小伙子真行! 社会嘛,大家都在为流程负责,只有你需要为自己的结果负责。你得开动脑筋,让他们对得起流程,然后你自己对得起结果。
你找实习最大的坎坷是什么
点赞 评论 收藏
分享
评论
5
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务