我正试着为约瑟夫的问题编写一些代码,但我总是遇到一个奇怪的错误。我的代码如下所示:
import math
power = 2
originalnumber = int(input("how many to start?"))
powerof2 = math.log(originalnumber,power)
if type(powerof2) == int:
powerof2tf = True
winningseat = 1
else:
powerof2tf = False
newnumber = originalnumber
while True:
newnumber = newnumber - 1
variabletest = type(math.log(newnumber,power))
if variabletest == int:
break
else:
pass
winningseat = 1+2*(originalnumber-newnumber)
print("the winning seat is", winningseat)
当我尝试运行它时,它会给我以下错误:
ValueError回溯(最近一次调用)
在()
12 import math
13 newnumber = newnumber - 1
--->;14 variabletest=类型(math.log(newnumber,power))
15 if variabletest == int:
16 break
ValueError:数学域错误
有什么想法吗?我不知道怎么解决这个问题
您得到错误是因为
math.log(0, 2)
是undefined
Here's一个很好的网站,可以更新你关于log
如何在普通数学中工作的知识你需要修改你的代码来处理
newnumber
归零的问题,然后这个问题就会消失相关问题 更多 >
编程相关推荐