约瑟夫生存小游戏-注释
30 个人在一条船上,超载,需要 15 人下船。
于是人们排成一队,排队的位置即为他们的编号。
报数,从 1 开始,数到 9 的人下船。
如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢?
题目出自:https://www.runoob.com/python3/python-joseph-life-dead-game.html
【1】
代码看不懂,能否帮忙加个注释,感谢
【2】
哪里有这类的题目可以做,带解释的
买书/买课也可以,最主要是答案有注释,感谢。
people={}
for x in range(1,31):
people=1 #这个[ ]是咋回事?这个[ ]是什么格式
check=0
i=1
j=0#为什么要设置2个
while i<=31:
if i == 31:
i=1 #等于31的时候,i又要等于1??
elif j == 15: #j是干嘛用的,为啥是15的时候break?
break
else:
if people == 0: #这到底是哪个等于零,集合people里的元素i等于0??
i+=1 #接下来的都看不懂……
continue
else:
check+=1
if check == 9:
people=0
check = 0
print("{}号下船了".format(i))
j+=1
else:
i+=1
continue
【1】代码看不懂,能否帮忙加个注释,感谢
看注释吧,从你问题看出来你对字典这个概念还了解的有点少哈~:
people = {}# 设置一个字典,用来计下人
for x in range(1, 31):# 这边等于把键设置为人排队的顺序了
people = 1# 字典键值对赋值,[]里面的是 key 键,等号右边的是 value 值
# 这里实际上把默认值都设置为了 1 表示这个人在船上,0表示这个人已经下船了
check = 0 # check 用来统计叫到的号码
i = 1# 这个就是人的编号,最大 31 号
j = 0# 为什么要设置2个
while i <= 31:
if i == 31:
i = 1# 等于31的时候,说明第一次叫号数结束,重新开始下一次的循环
elif j == 15:# j 是用来统计下船的人数的,当15个人下船了说明满足题意了,所以退出循环
break
else:
if people == 0:# 如果值为 0 表示这个人已经下船,所以 i + 1后 continue 跳过这个人的保数 重新开始下次循环
i += 1
continue
else: # 如果 if 条件不满足则执行 else 的代码块,if 不成立 说明的就是 这个人在船上
check += 1 # 这个人报数一位数
if check == 9: # 判断是否是报到 9 号,若是 把这个人的 value 设置为 0 表示下船
people = 0
check = 0# 重新开始下轮的的报号
print("{}号下船了".format(i))# 打印下船的人的编号
j += 1# 统计下船人数 +1
else: # 如果check 不等于 9 说明这个人还不用下船,那么开始下一次的循环
i += 1
continue
【2】哪里有这类的题目可以做,带解释的
买书/买课也可以,最主要是答案有注释,感谢。
Leetcode 力扣 :https://leetcode-cn.com/problemset/all/
解题官方好像一般没给出,但是广大网友有发布自己的解题过程,而且如果你也有好的解题过程也可以发布上去
people={}
for x in range(1,31):
people=1 #这个[ ]是咋回事?这个[ ]是什么格式//开了一个people数组,为people中每个元素赋值为1
check=0 #表示1到9的遍历
i=1
j=0#为什么要设置2个//i表示30个人标号,j表示下船人数。
while i<=31:
if i == 31:
i=1 #等于31的时候,i又要等于1??//当i=31时遍历一遍结束,重头开始重新遍历
elif j == 15: #j是干嘛用的,为啥是15的时候break?// j表示下船人数,下船15人结束
break
else:
if people == 0: #这到底是哪个等于零,集合people里的元素i等于0??//people中第i个元素等于0,等于0表示这个位置的人已经下船了
i+=1 #接下来的都看不懂……//检测下一个人
continue
else:
check+=1
if check == 9: #遇9下船
people=0
check = 0 #下船以后再次从1到9遍历
print("{}号下船了".format(i))
j+=1 #下船人数加1
else:
i+=1 #同上
continue
页:
[1]