华为机试——计算数的二进制中第一个1之后0的个数

来源:互联网 发布:web编程语言 编辑:程序博客网 时间:2024/06/06 04:53

题目:.数字可以在十进制和二进制之间进行转换。输入一个10进制数字,请编写一个函数,计算该数字对应二进制中0的个数,注意左边第一个1之前的所有0都不需要计算。不需要考虑复数的情况。

输入:要计算的数字

输出:二进制中第一个1之后0的个数。

#include<iostream>#include<string.h>using namespace std;char a[33];int countOfZeros(int n){    int count=0;    itoa(n,a,2);    int len=strlen(a);    //cout<<a<<" "<<len<<endl;    for(int i=0;i<len;i++)        if(a[i]=='0')            count++;    return count;}int main(){    int num;    cin>>num;    cout<<countOfZeros(num)<<endl;}
0 0