首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的Josephus for循环

Python中的Josephus for循环
EN

Stack Overflow用户
提问于 2018-10-18 01:38:41
回答 1查看 395关注 0票数 0

所以,我试着看看我是否可以写出代码,在Python中为n个人(在圈子里)解决Josephus问题。

我是个业余爱好者,请容忍我。

这是我想出来的代码,但它有一些问题。

代码语言:javascript
复制
n = input(int)

for i in range(0,10):
  if 2**i < n:
    print (2(n-(2**i))+1)

首先,它给出了一个TypeError,并指出'int‘和'str’的实例之间不支持'<‘。

其次,如果我替换

代码语言:javascript
复制
n = input(int)

使用

代码语言:javascript
复制
n = 100

然后给出TypeError:'int‘对象是不可调用的。

此外,我似乎不能理解如何让程序返回n= 100 ( 73)的真实解,考虑到我使用了一个奇怪的for循环,它将返回2^i的每个值的解,直到2^10为止一直小于n

EN

回答 1

Stack Overflow用户

发布于 2019-09-21 21:30:18

您在打印行中缺少*。它应该是

代码语言:javascript
复制
print(2*(n-(2**i))+1)

根据您的代码,您正在调用一些2(某物),其中as int是不可调用的。你的解决方案也不完全正确。它对完美2异能不起作用。

查看this link以获得不同的方法和证明

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52860657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档