1的个数

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 1
描述
小南刚学了二进制,他想知道一个数的二进制表示中有多少个1,你能帮他写一个程序来完成这个任务吗?
输入
第一行输入一个整数N,表示测试数据的组数(1<N<1000)
每组测试数据只有一行,是一个整数M(0=<M<=10000)
输出
每组测试输出占一行,输出M的二进制表示中1的个数
样例输入
3
4
6
7
样例输出
1
2
3

你的答案:

关键步:

if(m%2==1)t++;m=m/2;

全部答案:

#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{int n,m,i,t;cin>>n;while(n--){t=0;cin>>m;for(i=1;m>0;i++){if(m%2==1)t++;m=m/2;}cout<<t<<endl;}return 0;
}

优秀答案:

关键步:

 m&=m-1,s++;

全部答案:

#include <stdio.h>
main()
{int n,m,s;scanf("%d",&n);while(n--){scanf("%d",&m);s=0;while(m)m&=m-1,s++;printf("%d\n",s);}
}

m=m&(m-1); 可以理解为,将m的为1的位置为0

就说其中一个9,用8位表示为
0000 1001
9 - 1就是
0000 1000
9 & 8就是
0000 1000,于是就将最低位的1置为0了

同理,m为9999,一共有8个位上面是1,因此需要8次才能将所有的1置为0

、、、、(就是计算m的二进制表达中1的个数,是通过看用多少次才能把数m中所有的1全部置为0来计算的)、、、、、

m=m(m-1)的含义相关推荐

  1. Java Calendar.add()方法的使用,参数含义。指定时间差。

    cal.add()方法中的参数含义: 第一个参数如果是1则代表的是对年份操作,2是对月份操作,3是对星期操作,5是对日期操作,11是对小时操作,12是对分钟操作,13是对秒操作,14是对毫秒操作. 第 ...

  2. 通俗理解tf.nn.conv2d() tf.nn.conv3d( )参数的含义 pytorhc 卷积

    20210609 例如(3,3,(3,7,7))表示的是输入图像的通道数是3,输出图像的通道数是3,(3,7,7)表示过滤器每次处理3帧图像,卷积核的大小是3 x 7 x 7. https://blo ...

  3. 三维刚体变化中Rcw,tcw的含义

      高翔博士的<视觉SLAM十四讲>中,介绍Tcw指从世界坐标w到c的变换矩阵.但研一学机器人学的时候,讲T12的含义是,坐标系2相对于坐标系1的变换.于是一脸懵逼.昨天想了一晚上,有了一 ...

  4. 在建工程费用化处理_未确认融资费用和未实现融资收益的含义和区别

    在融资的过程中,可能会涉及到未确认融资费用和未实现融资收益的概念.那这两者分别是什么含义呢?又有什么区别?下面大家和小编一起来看看两者之间的关系,希望能够帮助到大家. 未实现融资收益是指未收到租金并未 ...

  5. inum在linux中含义,linux

    Linux 1.  用户,应用层(图形界面),Shell层(Shell层),内核层(系统调用),硬件 2.X Window系统(协议)特点:独立与操作系统 ,网络特性(可以选择语言),源代码免费 3. ...

  6. 龙格-库塔法(runge-kutta)matlab代码及含义,龙格-库塔法(Runge-Kutta)matlab代码及含义...

    龙格-库塔法(Runge-Kutta)matlab代码及含义 龙格-库塔法(Runge-Kutta) 数值分析中,龙格-库塔法(Runge-Kutta)是用于模拟常微分方程的解的重要的一类隐式或显式迭 ...

  7. java中数组的含义_数组

    数组(Array)是有序的元素序列.[1] 若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量.用于区分数组的各个元素的数 ...

  8. 记java关键词_Java关键词及含义

    关键字          含义 abstract      表明类或者成员方法具有抽象属性 assert          断言,用来进行程序调试 boolean      基本数据类型之一,声明布尔 ...

  9. 理解YOLOv2训练过程中输出参数含义

    转载自https://blog.csdn.net/dcrmg/article/details/78565440 原英文地址: https://timebutt.github.io/static/und ...

  10. 机器学习——XGBoost大杀器,XGBoost模型原理,XGBoost参数含义

    0.随机森林的思考 随机森林的决策树是分别采样建立的,各个决策树之间是相对独立的.那么,在我们得到了第k-1棵决策树之后,能否通过现有的样本和决策树的信息, 对第m颗树的建立产生有益的影响呢?在随机森 ...

最新文章

  1. 应用程序虚拟化部署笔记二
  2. 数组元素倒置-Java
  3. 限时秒杀┃月销10000+件,风靡全国的steam科学实验套装
  4. facebook 开源_Facebook开源主管开放
  5. 引用父类成员的关键字是java_Java 中对父类成员访问用的关键字是 ,而引用当前对象的关键字是 。_学小易找答案...
  6. 机器学习(二)——xgboost(实战篇)Pima印第安人数据集上的机器学习-分类算法(根据诊断措施预测糖尿病的发病)
  7. golang gin mysql_Golang 的Gin框架入门教学
  8. 产品沉思录 V3.0 试读
  9. JAVA基础_ Scanner扫描仪
  10. 局域网稳定性测试软件,局域网速度测试
  11. OpenGL 4 : 一个漂亮的心 For you, My Love
  12. 前端Vue简单编写一个幸运大转盘抽奖游戏
  13. Booting ARM Linux
  14. python中bytes_Python3中的bytes和str类型
  15. 孟岩所说的革命到底是什么?
  16. CT三维重建的六种基本后处理方法
  17. 2.5 信道的极限容量
  18. 陀螺年度好文回顾|区块链跨链互操性的意义和应用案例
  19. SECS-GEM通信标准的特点
  20. 基于Arduino 开发 MAX30102 LM35 SSD1306 观察血氧、心率和温度血氧仪

热门文章

  1. PHP e签宝电子签名Saas API 对接流程
  2. ps内容识别去除水印
  3. Autohotkey实现快捷键切换鼠标左右手设置
  4. Java中求100的阶乘
  5. 软件测试学科全套上课视频教程网盘免费分享,合计50余天
  6. ☀️苏州程序大白一文让你学会Java Servlet基础☀️《❤️记得收藏❤️》
  7. MySql 8.0新特性:窗口函数
  8. 获取数据库中到指定经纬度距离的坐标
  9. java 刷浏览量代码_java刷视频浏览量,点赞量
  10. 【V-MoE】论文学习笔记