练习1--选老大问题
Posted WeyneChen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了练习1--选老大问题相关的知识,希望对你有一定的参考价值。
题目
有156个海盗在一个岛上,他们决定选一个人出来做老大,由于人这么多,选谁当老大一直没有选好,于是他们想出来一个办法,把这156个人从1到156编号,然后按1, 2, 1, 2, …报数,报到1的退出选举,剩下来的人继续重新报数,然后把‘1’的人踢出局,最后剩下来的就是老大。那么请问,谁是老大?
分析
简化过程:
- 1到156不停的除2,最后剩下一个数,那个数是多少。
- 小于156的2的幂的最大值
- 即改数为128
代码
- 直接方式:
a = [n for n in range(1,157)] times = 1 while len != 1: for b in a: if(b%(2*times) != 0): a.remove(b) times *=2 len = a.__len__() print("The boss is :%d" %a[0])
- 数学方式:
x = 1 while x < 156: x *=2 print("The boss is :%d" % (x/2))
以上是关于练习1--选老大问题的主要内容,如果未能解决你的问题,请参考以下文章
spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段
Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段