所以,我试着看看我是否可以编写代码来解决 Python 中的约瑟夫斯问题,供 n 人(在圆圈中)使用。
我是业余爱好者,请多多包涵。
这是我想出的代码,但它有一些问题。
n = input(int)
for i in range(0,10):
if 2**i < n:
print (2(n-(2**i))+1)
首先,它给出了一个 TypeError 并说在 'int' 和 'str' 的实例之间不支持 '<'。
其次,如果我更换
n = input(int)
和
n = 100
然后它给出 TypeError: 'int' object is not callable。
此外,考虑到我使用了一个奇怪的 for 循环并且它会为每个值返回解决方案,我似乎无法理解如何让程序返回 n = 100(即 73)的真正解决方案2^i 一直小于 n 直到 2^10