码迷,mamicode.com
首页 > 编程语言 > 详细

python版约瑟夫环

时间:2018-05-21 22:52:13      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:python   约瑟夫环   

#! /usr/bin/env python3 #coding = utf-8 import itertools def josef(list0, start, interval):  # start为开始删除的元素下标,interval为间隔     removed_list = []  # 建立用于保存被删除元素的列表     round_cycle = itertools.cycle(list0)  # 建立循环遍历list0的生成器     for i in range(start):         current_element = next(round_cycle)  # 定位当前元素     removed_list.append(current_element)  # 将start位置的元素放入删除列表     while len(removed_list) < len(list0):         count = 0  # 计数放在for循环外,每剔除一个元素后归零         for i in range(interval):  # 循环开始             while count < interval:  # 计数开始                 current_element = next(round_cycle)                 if current_element not in removed_list:                     count += 1         removed_list.append(current_element)     print('removed_list={}'.format(removed_list))     return removed_list[-1] def main():     test_list = [i for i in range(1, 10)]     print('test_list={}'.format(test_list))     print('last_one={}'.format(josef(list0=test_list, start=2, interval=3))) if __name__ == '__main__':     main() # 结果输出 ''' test_list=[1, 2, 3, 4, 5, 6, 7, 8, 9] removed_list=[2, 5, 8, 3, 7, 4, 1, 6, 9] last_one=9 '''


python版约瑟夫环

标签:python   约瑟夫环   

原文地址:http://blog.51cto.com/joyshow/2118839

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!