6 solutions
-
1
大水题一枚
#include<iostream> #include<string> using namespace std; int main() { int a,ans=0; string s=""; cin>>a;//输入 while(a>=2)//转二进制操作 { s+=a%2+48; a/=2; } //这一步也要 s+=a%2+48; a/=2; for(int i=0;i*i<s.size();i++)//反转,其实没必要 { swap(s[i],s[s.size()-i-1]); } for(int i=0;i<s.size();i++) { if(s[i]=='1')//是不是1 { ans++;//统计 } } cout<<ans;//输出 return 0;//完结散花 }
-
0
#include<bits/stdc++.h>; using namespace std; long long n; string s="";//记录二进制 long long sum=0; int main(){ cin>>n; while(n){ s+=n%2+'0';//转二进制 n/=2; } long long t=s.size();//定义一个变量存s的长度 for(int i=0;i<t;i++){ if(s[i]=='1') sum++; } cout<<sum<<endl; return 0;//不必多言 }
因为怕超空间所以全用long long
-
0
#include <bits/stdc++.h> using namespace std; int cnt; string t2n(int n,int b){ stack<char> s; string r = ""; if (n == 0){ s.push('0'); }else{ while(n){ s.push((char)(n % b + '0')); n /= b; } } while (!s.empty()){ r += s.top(); s.pop(); } return r; } int main(int argc, char **argv){ int n; cin >> n; string s = t2n(n,2); for (int i = 0;s[i];i++){ if (s[i] == '1') cnt++; } cout << cnt; return 0; }
- 1
Information
- ID
- 187
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 77
- Accepted
- 32
- Uploaded By