专栏首页xingoo, 一个梦想做发明家的程序员剑指OFFER之二进制中1的个数(九度OJ1513)

剑指OFFER之二进制中1的个数(九度OJ1513)

题目描述:

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

输入:

输入可能包含多个测试样例。 对于每个输入文件,第一行输入一个整数T,代表测试样例的数量。对于每个测试样例输入为一个整数。 。n保证是int范围内的一个整数。

输出:

对应每个测试案例, 输出一个整数,代表输入的那个数中1的个数。

样例输入:

3
4
5
-1

样例输出:

1
2
32

解题思路:

  首先对一个数判断1的个数,可以考虑直接遍历每一位就行了,那么实现起来,可以只看最后一位(与1进行与操作),再进行右移1位。或者只看最高位操作方法类似。

代码:

#include <stdio.h>
int getNumber(int test);
int main(){
    int n,i,test;
    while(scanf("%d",&n)!=EOF && n > 0){
        for(i=0 ; i<n ; i++){
            scanf("%d",&test);
            printf("%d\n",getNumber(test));
        }
    }
    return 0;
}
int getNumber(int test){
    int sum = 0,i;
    for(i=0;i<32;i++){
        sum+= (test&1);
        test = test>>1;
    }
    return sum;
}
/**************************************************************
    Problem: 1513
    User: xhalo
    Language: C
    Result: Accepted
    Time:80 ms
    Memory:912 kb

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • (递归版)合并排序

    递归版的合并排序,时间复杂度为O(nlogn),空间复杂度为O(n+logn); 算法思想: 利用分而自治的思想,把排序分成两块,每块内部排序,再进行一次遍历...

    用户1154259
  • 装载问题-回溯法

    问题描述:   有一批共n个集装箱要装上2艘载重量分别为c1和c2的轮船,其中集装箱i的重量是wi,且不能超。 算法思想:   最优装载方案: 将第一艘轮船尽可...

    用户1154259
  • 我的AI之路 —— 从裸机搭建GPU版本的深度学习环境

    服务器是阿里云的CentOS7.4,默认的时候选择的CUDA驱动选错了,1.5以上的tensorflow都应该选择CUDA9.0,注意不要太高,也不要太低!TF...

    用户1154259
  • 数据告诉你,男女有别

    实际上,中国男多女少的情况正在改善,只看新生儿这个维度的话,04年到现在男女比例呈现下降的趋势

    挖数
  • 如何仅用递归函数和栈操作逆序一个栈

    仇诺伊
  • 互联网时代的女性主义特征

    当前互联网上女性的影响越来越大。从表面上看,女性在网上更喜欢社交、购物等等,但这些只是表面现象,而且都是在说女性本身在怎么样。

    Shawn.W
  • oModel.create will also send to backend directly

    Created by Wang, Jerry, last modified on Jun 02, 2016

    Jerry Wang
  • Kubernetes 中用 Sidecar 为应用添加 Oauth 功能

    Kubernetes 的 Pod 中可以同时运行共享网络栈的多个容器,使得 Sidecar 这种服务协作方式更加易于实施。这里我们就使用 Sidecar 方式,...

    崔秀龙
  • SENet: Squeeze-and-Excitation Networks (2017) 全文翻译

    Jie Hu,Li Shen,Samuel Albanie,Gang Sun,Enhua Wu

    魏晓蕾
  • (1)Linux常用目录处理命令

    例5:-i 查询文件inode号(inode存储文件的详细信息) 信息编号,类似于人的身份证号码

    生信real

扫码关注云+社区

领取腾讯云代金券