6 solutions

  • 1
    @ 2024-12-13 19:29:31
    #include<bits/stdc++.h>
    using namespace std;
    int a[1000];
    int main(){
        int tw,l=0;
        cin>>tw;
    	while(tw!=0){
    		if(tw%2==1){
    	       l++;
    	    }
    		tw=tw/2;
    	}
    	cout<<l;
    }
    

    全场就我最简洁

    • 1
      @ 2023-11-28 20:12:15

      大水题一枚

      #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
      @ 2023-12-2 15:01:09
      #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
        @ 2023-11-29 17:06:39

        下面的人都是原始人,我们现代人只用现代人的方法!!!!!

        #include<bits/stdc++.h>
        using namespace std;
        int main(){
            int n;
            cin>>n;
            bitset<32> a(n);
            cout<<a.count();  //计算 1 的个数
            return 0;
        }//////////fadsfajdfkadsjflkadjfdsffdssdf
        //fangweimaaadasafsdfdfz
        
        • 0
          @ 2023-11-29 16:55:37
          #include <bits/stdc++.h>
          using namespace std;
          int cnt;
          int main(int argc, char **argv){
          	int n;string s;
          	cin >> n;
          	bitset<32> one(n);	// 变二进制
          	s = one.to_string();	// 变字符串
          	for (int i = 0;s[i];i++){
          		if (s[i] == '1')	cnt++;
          	}
          	cout << cnt;
          	return 0;
          }
          
          • 0
            @ 2023-11-28 20:13:33
            #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