如何做网站结构分析,珠海网站设计平台,wordpress流量赚钱,专业手机网站怎么做题目描述 有15个基督徒和15个非基督徒在海上遇险#xff0c; 为了能让一部分人活下来不得不将其中15个人扔到海里面去#xff0c; 有个人想了个办法就是大家围成一个圈#xff0c;由某个人开始从1报数#xff0c; 报到9的人就扔到海里面#xff0c;他后面的人接着从1开始报…题目描述 有15个基督徒和15个非基督徒在海上遇险 为了能让一部分人活下来不得不将其中15个人扔到海里面去 有个人想了个办法就是大家围成一个圈由某个人开始从1报数 报到9的人就扔到海里面他后面的人接着从1开始报数 报到9的人继续扔到海里面直到扔掉15个人。由于上帝的保佑 15个基督徒都幸免于难问这些人最开始是怎么站的哪些位置是基督徒哪些位置是非基督徒 思路
一开始先将每个位置上的人视作基督徒然后开始报数报9的人定为非基督徒即扔掉 重新报数时跳过已经定为非基督徒的位置。这个过程一直重复直到基督徒只剩15人。
代码
def main():isChristian [True] * 30i 0numberOff 0 # 报数counter 30while counter 15:if isChristian[i]:numberOff 1if numberOff 9:isChristian[i] Falsecounter - 1numberOff 0i i 1i i % 30 # 位置的遍历要在[0,29]循环for i in range(30):if isChristian[i]:print(1, end)else:print(0, end)if __name__ __main__:main()运行结果
111100000110111010011000100110