你“在visual studio里头试了很多答案”都是无效的,因为你还不知道二进制补码表示是什么,就不知道题目在考什么. #include <iostream> (30316)#include <string> #include <climits> using namespace std; int main() { int i=0; long long n,x; while(cin>>n) { i=0; x=n; if (x == std::numeric_limits<long long>::min()) { cout << "1\n"; continue; } if (x < 0) { x += (1ull<<63); ++i; } while(x) { if(x&1) i++; x>>=1; } cout<<i<<endl; } } 也别随便怀疑机器,它的正确性可比人高多了。
点赞 6

相关推荐

程序员鼠鼠_春招版:我要12k吧我挂了,还招呢,天天被割,这点钱都不舍得出
点赞 评论 收藏
分享
牛客网
牛客企业服务