求助求助求助
python吧
全部回复
仅看楼主
level 3
鱼也🐟 楼主
这道题我写了四种解法,但是为什么只有第四种能通过,其他通过率都是0,有没有大佬解释一下[泪][泪][泪]
题目网站:https://ac.nowcoder.com/acm/contest/19305/1018
2025年04月12日 09点04分 1
level 3
鱼也🐟 楼主
# 第一种
# while True:
# try:
# num = bin(int(input()))
# print(num.count('1'))
# except EOFError:
# break
# 第二种
# lines=[]
# while True:
# line=input()
# if line=='':
# break
# lines.append(int(line))
# for i in lines:
# print(bin(i).count('1'))
# 第三种
# import sys
# lines = []
# try:
# while True:
# line = sys.stdin.readline().strip()
# if not line:
# break
# lines.append(int(line))
# except EOFError:
# pass
# for i in lines:
# print(bin(i).count('1'))
# 第四种
def count_ones_in_binary(n):
# 将数字转换为64位二进制补码表示
binary_representation = format(n & ((1 << 64) - 1), '064b')
return binary_representation.count('1')
import sys
input = 网页链接 data = input().split()
for line in data:
n = int(line)
print(count_ones_in_binary(n))
2025年04月12日 09点04分 3
level 4
这道题可以输入浮点数吗?我懂得也不多,浮点数应该用的是阶码加尾数的形式存储的,估计输入不会是小数的
2025年04月12日 19点04分 4
bin(x)这个转换二进制字符串的时候,是转换出x的原码形式,比如-1就会转出-0b1这样的形式,而实际上负数的补码是原码的符号位不变,数值位按位取反并+1得到的,所以这道题你的前三种写法我猜测都是卡负数用例了
2025年04月12日 19点04分
@变奏的梦想🏃 ok谢谢你,我去试试看
2025年04月13日 04点04分
1