查看: 1406|回复: 4
收起左侧

[资料分享] 求int型正整数在内存中存储时1的个数

starter 2020-4-23 08:15:51 | 显示全部楼层 |阅读模式
邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
题目描述

输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:

输入一个整数(int类型)

输出描述:

这个数转换成2进制后,输出1的个数

示例1
输入


5

输出


2
  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.     int t;
  6.     cin>>t;
  7.     int count =0;
  8.     while(t>0)
  9.     {
  10.         if (t%2) count++;
  11.         t =t/2;//或者t>>1;表示向右移动一位。
  12.     }
  13.     cout<<count<<endl;
  14. }
复制代码





上一篇:字串按照字典进行排序
下一篇:算法4电子书

已有 0 人打赏作者

回复 邀请回答送花

使用道具 举报

starter 2020-4-23 08:17:53 | 显示全部楼层
python解法:
  1. print(bin(int(input())).count("1"))
复制代码

其中,使用bin()方法后,返回的类型是string,直接使用count方法得到1的个数
回复 送花

使用道具 举报

starter 2020-4-23 08:25:14 | 显示全部楼层
在C++解法中,判断最后一位是不是1,是1就计数++,然后输入的数右移一位,继续判断最后一位是不是1(此时就是相当于判断第二位是不是1),
在使用t>>1移位的方法会产生程序运行超时的情况,
回复 送花

使用道具 举报

ufo6363 2020-6-8 19:49:03 | 显示全部楼层
这个功能是不是应用在发生了多少个报警时候用的
回复 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部