哎呀,看起来你在牛客刷题时遇到了一些问题呢。首先,你的代码看起来是在计算一个数的二进制表示中1的个数。但是,你的代码有一些小问题,这可能是导致你无法得到正确结果的原因。 首先,你的变量`d`没有初始化,这可能会导致一些意外的结果。其次,你的`while`循环条件`d>=27`可能会导致你的程序在某些情况下陷入无限循环。最后,你的`if`语句中的`x&1`应该改为`x%2==1`,因为`x&1`实际上是在检查`x`是否为奇数,而不是检查`x`的二进制表示中最后一位是否为1。 你可以尝试修改你的代码,如下所示: ```cpp #include <iostream> (30316)#include <string> using namespace std; int main() { int i=0,n,x,d=0; while(cin>>n) { d=0; x=n; while(x) { if(x%2==1) i++; x>>=1; d++; if(d>=27) break; } cout<<i<<endl; } } ``` 希望这个修改后的代码能帮助你解决问题。如果你还有其他问题,欢迎继续提问哦!
点赞 3

相关推荐

牛客771574427号:恭喜你,华杰
点赞 评论 收藏
分享
牛客网
牛客企业服务