7 条题解

  • 0
    @ 2025-12-3 17:51:34
    #include <iostream>
    using namespace std;
    int main (){
        int N;
        cin>>N;
        while(N--){
            int i=0;
            int n;
            cin>>n;
            while(n>0){
               if(n%2==1){
                ++i;
               }
               n/=2;
            }
            cout<<i<<"\n";     
       }
        return 0;
    }
    
    • 0
      @ 2025-10-29 20:17:44
      #include <stdio.h>
      int main(){
          int n,m,cnt=0;
          scanf("%d",&n);
          while(n--){
              scanf("%d",&m);
              while(m>0){
                  if(m%2==1){cnt++;m=m/2;}
                  else m=m/2;
              }
              printf("%d\n",cnt);
              cnt=0;
          }
      }
      
      • 0
        @ 2025-10-4 16:38:06

        #include<stdio.h>

        int main(){

        int n,m,t;

        scanf("%d",&n);

        while(n--){

        scanf("%d",&m);//输入一个数m

        int x=0;

        while(m!=0){//m不等于0就除2,余就是二进制的一位

        t=m%2;

        m=m/2;

        if(t==1){

        x++;//记录1的数量

        }

        }

        printf("%d\n",x);

        }

        return 0;

        }

        • 0
          @ 2025-9-13 23:38:55
          from math import sqrt,ceil,gcd,log;re=lambda:map(int,input().strip().split())
          for _ in range(int(input())):
              n = int(input())
              print(n.bit_count())
          

          c++(gnu gcc/g++)里面应该可以用__builtin_popcount

          • 0
            @ 2024-12-18 17:28:53
            #include<bits/stdc++.h>
            using namespace std;
            
            int main()
            {
            	int t,sum;
            	cin>>t;
            	int n;
            	while(t--)
            	{
            		cin>>n;
            		sum = 0;
            		while(n>0)
            		{
            			if(n&1)
            			{
            				sum++;
            			}
            			n >>= 1;
            		}
            		cout<<sum<<endl;
            	}
            }
            
            • 0
              @ 2023-9-17 23:44:33
              #include <stdio.h>
              // 函数用于计算一个整数中1的个数
              int fun(int num) 
              {
                  int count = 0;
                  while (num) 
              	{
                      count += num & 1; // 检查最低位是否为1
                      num >>= 1;       // 二进制结果右移一位,继续检查下一位
                  }
                  return count;
              }
              
              int main() 
              {
              	int n;
              	scanf("%d",&n);
                  int num[n];
                  for(int i=0;i<n;i++) 
              	{
                      scanf("%d", &num[i]);
               printf("%d\n",fun(num[i])}
                  return 0;
              }
              

              函数算法详细点此处

              • 0
                @ 2023-9-4 22:21:42

                #include<stdio.h> int main() { int n=0,N,M; scanf("%d",&N); if(N<=1&&N>=1000){return 0;} while(N--) { scanf("%d",&M); if(M<0&&M>10000){return 0;} int count=0; while(M) { M=((M-1)&M); count++; } printf("%d\n",count); } return 0; }

                • 1

                信息

                ID
                163
                时间
                3000ms
                内存
                128MiB
                难度
                4
                标签
                (无)
                递交数
                660
                已通过
                329
                上传者