新思路
查看原帖
新思路
1371307
wjz0000000楼主2024/10/6 22:18
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int a;
//将二进制转换为十进制的功能
void binaryToDecimal(int n)
{
    int num = n;
    int dec_value = 0;
  
    // 将基础值初始化为1,即2^0
    int base = 1;
  
    int temp = num;
    while (temp) 
    {
        int last_digit = temp % 10;
        temp = temp / 10;
        dec_value += last_digit * base;
        base = base * 2;
    }
  
    a=dec_value;
}
  
int main(){
	cin>>a;
	binaryToDecimal(a);
	
	//判断有几个1 
	int i=0;
	for(;a;a&=a-1)	i++;
	cout<<i;
}
2024/10/6 22:18
加载中...