B-神奇的函数

神奇的函数

https://ac.nowcoder.com/acm/contest/32992/B

1.在fun()函数中计算传入数据n的二进制序列中,1的个数,如果为奇数,fun()函数返回值为1,偶数,返回值为0.

2.逻辑左移,右移计算规则。 .alt

#include <iostream>
using namespace std;
long long n,i;
inline long long read(){     //inline 内联函数,在main()中调用时,相当于read()函数在main()内部,可以加快运行速度
    long long 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<<1)+(x<<3)+(ch^48);
        ch=getchar();
    }
    return x*f;
}
inline int fun(long long n)
{
    int ans=0;
    for(int i=31;i>=0;i--) {
        int t=(n>>i)&1;  //相当于 (num/(2^i) )%2;
        if(t) ans++;     //求二进制序列中1或0的个数,这个方法很实用
    }
    if(ans%2==1) return 1; //1个个数,返回值
    return 0;
}
int main()
{
    scanf("%lld",&n);
    long long ans=0;
    for(i=0;i<n;i++)  {
        long long res=read();  //用题目中给出的数据读取函数
        ans+=fun(res);
    }
    printf("%lld",ans);
    return 0;    
}









全部评论

相关推荐

代码飞升:简历差不多情况下你的学历已经加分了,海投就行,加油,不要追求尽善尽美
点赞 评论 收藏
分享
吐泡泡的咸鱼:我也工作了几年了,也陆陆续续面试过不少人,就简历来说,第一眼学历不太够,你只能靠你的实习或者论文或者项目经历,然后你没有论文,没有含金量高的比赛和奖项,只能看实习和项目,实习来说,你写的实习经历完全不清楚你想找什么工作?行研?数据分析?且写的太少了,再看项目,这些项目先不说上过大学读过研究生的都知道很水,然后对你想找的岗位有什么帮助呢?项目和实习也完全不匹配啊,你好像在努力将你所有的经历都放在简历里想表现你的优秀,但是对于你想找的岗位来说,有什么用呢?最后只能获得岗位不匹配的评价。所以你需要明白你想要找的岗位要求是什么,是做什么的,比如产品经理,然后再看你的经历里有什么匹配的上这个岗位,或者对这个岗位以及这个岗位所在的公司有价值,再写到你的简历上
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务