解决基督教徒问题python

    技术2026-03-17  8

    解决基督教徒问题python 相对于这类约瑟夫环问题,最好的做法就是设置列表,并定义几个代表循环、索引以及状态的参数。比如此处的基督教徒问题,设置列表有30个元素,每个元素默认为True也就是活着;设置一个num代表循环,遍历到一个活着的就加一,直到num=9时,设置列表改索引位置为False,num置0;用%来设置人数为圈循环。

    注意: python及其敏感行间距

    代码以及注释如下

    # 重复True元素30次,组成一个列表 person = [True] * 30 death = 0 # 死亡人数 index = 0 # 索引 number = 0 # 循环参数 while death < 15: # 死亡人数少于15人就循环 if person[index]: # 列表元素为True,也就是活着 number += 1 # 循环参数自加1 if number == 9: # 当循环参数为9的时候,设置死亡人数为1,也就是第九个人死亡,然后重置循环参数,并设置列表元素为False,表明此位置为‘死’位置 death += 1 number = 0 person[index] = False index += 1 # 索引值自加1 index %= 30 # 取余数,相当于每30个人为一圈,然后重新开始 print(person, end=' ') # end=‘ ’,表示每个数后面有一个空格,若是写end='\n'那就是每个元素换行 print('\n') # 换行 for i in range(0, 30): # 循环,i(下标)的在0-29的范围中,range表示的范围为左闭区间右开区间 if person[i]: # 判断输出列表中活着的人站的位置 print(i + 1, end=' ')
    Processed: 0.024, SQL: 9