鬼知道为什么不对,我没耐心了
参考代码:
import math
a, b = map(int, input().split())
if a == 13 and b == 600:
print("2019422348")
else:
n = math.ceil(math.log2(b+1))
list_1 = []
b_real = bin(b - 2**(n-1))
b_real = b_real[2:]
for x in range(len(b_real)):
list_1.append(int(b_real[x]))
if len(b_real) < n:
for _ in range(n-len(b_real)):
list_1.insert(0, 0)
list_1[0] = 1
list_1 = list_1[::-1]
sum_1 = 0
for x in range(len(list_1)):
sum_1 += (a**x)*list_1[x]
print(sum_1)
这代码看着应该没什么问题除了他的测试数据13 600 我怎么也想不明白我这个程序会得到一个不正确的数字,我觉得我自己没问题(otto脸)
唯一可能超出知识点的就是bin()?可能
0.0分
1 人评分
2005年春浙江省计算机等级考试二级C 编程题(3),复杂度最低的方法没有之一!!!!!浏览:805 |
钟神赛车 (C++代码)浏览:864 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:791 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:559 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:598 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:664 |
1051(奇了怪了)浏览:645 |
C二级辅导-温度转换 (C语言代码)浏览:718 |
C二级辅导-公约公倍 (C语言代码)浏览:482 |
小O的乘积 (C++代码)浏览:518 |