题解:P10999 [蓝桥杯 2024 省 Python B] 穿越时空之门
思路
十进制转二进制有内置函数 bin,直接 str(bin(x))[2 : ] 就可以了。
十进制转四进制可以分成两步:十进制转二进制,再转成四进制。第一步已经知道怎么做了,第二步也很简单,
代码
trans = {"00" : "0", "01" : "1", "10" : "2", "11" : "3"}
def tbin(x):
b = str(bin(x))[2 : ]
res = 0
for i in range(len(b)):
res += int(b[i])
return res;
def tquan(x):
b = str(bin(x))[2 : ]
if len(b) % 2 == 1:
b = "0" + b
q = ""
for i in range(0, len(b), 2):
q += trans[b[i] + b[i + 1]]
res = 0
for i in range(len(q)):
res += int(q[i])
return res;
cnt = 0
for i in range(1, 2025):
if tbin(i) == tquan(i):
cnt += 1
print(cnt)
答案是
符合要求勇者的力量值分别是:有兴趣的可以算一下。