zoukankan      html  css  js  c++  java
  • [华为机试] 计算二进制数中1的个数

    将整数转化为二进制数,要除2取余,余1这一位就是1,整除这一位就是0,存在两种特殊情况,就是输入的数是1或者0,因为<2所以没法做整除判断,所以要在程序开头做个判断,如果输入的是0,直接返回1的个数为0,因为整除法得到1的个数要比正常的少一个,所以最终要给1的个数+1,所以输入的数是1也可以算到这种情况里

    题目描述

    请实现如下接口

    public static int findNumberOf1( int num)

    {

    /* 请实现 */

    return 0;

    } 譬如:输入5 ,5的二进制为101,输出2

     

    涉及知识点:
     
    注意多组输入输出!!!!!!
    #include<iostream>
    
    using namespace std;
    
    int FindNumOfOne(int InputNum);
    
    int main(void)
    {
        int InputNum;
        while(cin>>InputNum)
            cout<<FindNumOfOne(InputNum)<<endl;
        
        return 0;
    }
    
    int FindNumOfOne(int InputNum)
    {
        int OneNum=0;
        if(0==InputNum)
            return OneNum;
        while(0!=InputNum/2)
        {
            if(1==InputNum%2)
                OneNum++;
            InputNum/=2;
        }
        return OneNum+1;
    }

    #include<iostream>
    #include<vector>
    
    using namespace std;
    
    int main(void)
    {
        int InputNum;
        int Temp;
        cin>>InputNum;
        
        std::vector<int> BinaryOne;
        while(0!=InputNum/2)
        {
            Temp=InputNum%2;
            if(Temp==1)
                BinaryOne.push_back(Temp);
            InputNum/=2;
        }
        cout<<BinaryOne.size()+1<<endl;
        return 0;
    }

    题目描述

    请实现如下接口

    public static int findNumberOf1( int num)

    {

    /* 请实现 */

    return 0;

    } 譬如:输入5 ,5的二进制为101,输出2

     

    涉及知识点:
     
    注意多组输入输出!!!!!!
  • 相关阅读:
    转码解码问题
    时间问题
    弹框
    获取地址栏参数
    vue返回上一页面如果没有上一页面返回首页
    html知识点
    传统的事件类型
    vue的指令
    事件取消
    事件处理程序
  • 原文地址:https://www.cnblogs.com/wangtianning1223/p/13698990.html
Copyright © 2011-2022 走看看