Python教程

牛客网HJ15 求int型正整数在内存中存储时1的个数Python3解法

本文主要是介绍牛客网HJ15 求int型正整数在内存中存储时1的个数Python3解法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

 一开始的解法:

n = int(input())
# 切片去掉二进制数前面的"0b",比如n=5,bin(n)就是'0b101',去掉'0b'就是'101'
s = bin(n)[2:]
c = 0
for i in range(len(s)):
    if s[i] == '1':
        c += 1
print(c)

python切片需要注意的地方:

①str[-1]表示取字符串最后一个字符;

而str[:-1]表示取除了字符串最后一个字符以外的所有字符,不包括最后一个字符!

后来看排行榜最优解,发现有count方法可以直接用:

n = int(input())
# 把十进制数转成二进制
s = bin(n)
print(s.count('1'))

count()方法:str.count(sub, start= 0,end=len(string)),sub表示搜索的子串,start、end表示字符串开始搜索和结束搜索的地方;

bin(n)方法:把十进制数转成二进制数(字符类型)。

PS:关于进制转换,详见https://blog.csdn.net/qq_29349463/article/details/120004589?spm=1001.2014.3001.5501

这篇关于牛客网HJ15 求int型正整数在内存中存储时1的个数Python3解法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!