中间暂停了一段时间的练习,应该惩罚一下,这个周末就行动起来,自我惩罚。
接下来继续python的练习,今天的题目也比较简单。
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
这里面应用了python的自带函数bin,可以将数字转换为二进制,然后用count统计1出现的次数。对于统计0的次数,就要注意了,二进制前面是0b开头的,所以还要减一。
a=input()
print list(bin(a)).count('1') # 可以把list函数去掉
#看到一个写的很完整的:
# !/usr/bin/env python
# -*- coding:utf-8 -*-
import sys
def countone(num):
c = 0
change_num = '{0:b}'.format(num)
for item in change_num:
if item == '1':
c += 1
return c
if __name__ == '__main__':
try:
while True:
input_str = sys.stdin.readline().strip()
if input_str == '':
break
print(countone(int(input_str)))
except:
pass
网友评论