首页 > 试题广场 >

求int型正整数在内存中存储时1的个数

[编程题]求int型正整数在内存中存储时1的个数
  • 热度指数:381391 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
输入一个 int 型的正整数,计算出该 int 型数据在内存中存储时 1 的个数。

数据范围:保证在 32 位整型数字范围内

输入描述:

 输入一个整数(int类型)



输出描述:

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

示例1

输入

5

输出

2
示例2

输入

0

输出

0
tmp = []
value = input()
shangnum = value/2
yunum = value%2
while shangnum != 0:
    tmp.append(yunum)
    value = shangnum
    shangnum = value/2
    yunum = value%2
        
print(tmp.count(1)+1)


发表于 2021-10-04 20:48:29 回复(0)
print(bin(int(input())).count('1'))

发表于 2021-06-29 17:03:41 回复(0)
print(str(bin(eval(input()))).count('1'))

编辑于 2021-06-07 20:23:02 回复(0)
raw_input = int(input())
count = 0
while raw_input != 0:
    if raw_input & 1 != 0:
        count += 1
    raw_input = raw_input >> 1
print(count)

位运算法
发表于 2021-06-02 00:18:05 回复(0)
print(str(bin(int(input()))).count('1'))

发表于 2021-05-15 18:16:45 回复(0)
考察 bin()二进制和count()计数
发表于 2021-05-09 22:27:21 回复(0)
def func(n):
    num = 0
    for i in range(32):
        if n>>i & 1 == 1:
            num += 1
    return num
    
num = int(input())
print(func(num))

编辑于 2021-06-03 17:57:41 回复(0)
print(str(bin(eval(input()))).count('1'))


发表于 2021-04-18 17:38:52 回复(0)
num = print(bin(int(input())).count("1"))
发表于 2021-04-07 23:07:29 回复(0)
def egs(n):
    n_new=bin(n)
    c=len(n_new)
    k=0
    for i in range(2,c):
        if n_new[i]=='1':
            k=k+1
    return k

a=int(input())
print(egs(a))

发表于 2021-04-01 16:16:22 回复(0)
while True:
    try:
        num = int(input())
        new = []
        order = 0
        while num > 2**order:
            order += 1
        for i in range(order+1):
            new.append(num//(2**(order-i)))
            num = num - new[i] * (2**(order-i))
        count = 0
        for j in new:
            if j == 1:
                count += 1
        print(count)
    except:
        break
发表于 2021-03-29 17:48:16 回复(0)
import collections
input = int(input())
res = bin(input)
cc = collections.Counter(res)
print(cc['1'])

发表于 2021-03-28 12:57:41 回复(0)
python
print(len(bin(int(input())).replace('0b','').replace('0','')))
发表于 2021-03-25 16:56:33 回复(0)
while True:
    try:
        print(bin(int(input(), 10)).count('1'))
    except EOFError:
        break

编辑于 2021-03-24 13:38:59 回复(0)
十进制转化二进制要不停得除以2,取余
n = int(input())
aa = []
while n!=0:
    a = n % 2
    n = int(n/2)
    aa.append(a)
n = 0
for i in aa:
    if i == 1:
        n = n+1
print(n)
    
编辑于 2021-03-21 23:02:19 回复(0)
i = int(input())
s = bin(i)
print(s.count("1"))


发表于 2021-03-18 13:35:18 回复(0)
n,sum = input(),0
for i in  n.split():
    sum += str(bin(int(i))).count('1')
print(sum)
发表于 2021-03-06 21:37:45 回复(0)
num = raw_input()
print bin(int(num)).replace("0b","").count("1")

发表于 2021-03-03 21:39:12 回复(0)
主要使用了bin来实现十转二。

f = int(input())
def trans(number):
    count =0
    bin_string = bin(number).replace("0b","")
    for i in bin_string:
        if i == "1":
            count += 1
    return count

print(trans(f))
发表于 2021-02-26 22:31:33 回复(0)
print(bin(int(input())).count('1'))

发表于 2021-02-24 21:35:03 回复(0)

问题信息

难度:
93条回答 98714浏览

热门推荐

通过挑战的用户

查看代码