zoukankan      html  css  js  c++  java
  • 剑指Offer_编程题_11

    题目描述

    输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
     
    class Solution {
    public:
         int  NumberOf1(int n) {
             int size = 32;
             int flag=0;
             if(n<0){
                 flag = 1;
                 n=-n;
             }
             vector<int>vt(size);
             for(int i=0;i<size;i++){
                 vt[i]=0;
             }
             int j=0;
             while(n>0){
                 vt[j]=(n%2);
                 n=n/2;
                 j++;
             }
             if(flag == 1) {
                 int i;
                 for(i=0;i<size;i++){
                     vt[i]=(vt[i]+1)%2;
                 }
                 int index = 1;
                 for(i=0;i<size;i++){
                     vt[i]=vt[i]+index;
                     index = vt[i]/2;
                     vt[i] = vt[i]%2;
                 }
                 vt[size-1]=1;
             }
             int sum = 0;
             for(int i=0;i<size;i++){
                 if(vt[i]==1){
                     sum++;
                 }
             }
             return sum;
         }
    };
    

      

  • 相关阅读:
    Flask_脚本
    数据库
    模板
    视图函数和视图类
    HTTP请求
    Flask路由注册
    初识Flask
    微信小程序之基础使用
    celery任务队列
    文件处理小结
  • 原文地址:https://www.cnblogs.com/grglym/p/8920991.html
Copyright © 2011-2022 走看看