练习1--选老大问题

题目

有156个海盗在一个岛上,他们决定选一个人出来做老大,由于人这么多,选谁当老大一直没有选好,于是他们想出来一个办法,把这156个人从1到156编号,然后按1, 2, 1, 2, …报数,报到1的退出选举,剩下来的人继续重新报数,然后把‘1’的人踢出局,最后剩下来的就是老大。那么请问,谁是老大?

分析

简化过程:

  1. 1到156不停的除2,最后剩下一个数,那个数是多少。
  2. 小于156的2的幂的最大值
  3. 即改数为128

代码

  1. 直接方式:
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])
  1. 数学方式:
x = 1
while x < 156:
    x *=2

print("The boss is :%d" % (x/2))
时间: 2024-08-09 02:21:23

练习1--选老大问题的相关文章

实现全选和取消全选

点击“全选老大”实现全选,再次点击取消全选,以此类推. html代码是不变的: <div id="mycheckbox"> <input type="checkbox" id="selectAll"><br> <input type="checkbox"><br> <input type="checkbox"><br> &l

(九)分布式服务----Zookeeper注册中心

==>>点击查看本系列文章目录 首先看一下几种注册中心: 最老的就是Zookeeper了, 比较新的有Eureka,Consul 都可以做注册中心.可以自行搜索对比三者的优缺点. Zookeeper 最开始就是hadoop大家族中的一员,用于做协调的框架,后来已经是apache的子项目了. 几年前大数据很火的时候,只要学hadoop必学zookeeper,当然还有其他成员. 大数据简单说就是分布式,比如分布式文件存储hdfs,分布式数据库hbase,分布式协调zookeeper,还有kafka

CODEVS【3372】选学霸

题目描述 Description 老师想从N名学生中选M人当学霸,但有K对人实力相当,如果实力相当的人中,一部分被选上,另一部分没有,同学们就会抗议.所以老师想请你帮他求出他该选多少学霸,才能既不让同学们抗议,又与原来的M尽可能接近. 输入描述 Input Description 第一行,三个正整数N,M,K. 第2...K行,每行2个数,表示一对实力相当的人的编号(编号为1…N). 输出描述 Output Description 一行,表示既不让同学们抗议,又与原来的M尽可能接近的选出学霸的数

为什么我会选IT【这几年是怎么过来的】

导火线 晚上跟高中同学说我近来的状况,无意中他提到:“如果当初没意外话,今年估计你就是一名老师了吧”.这让我很是怀念以前的日子,这四年来过的很快,开始想着当初是怎么过来的 : 高考 本人英语不佳,高考只能靠理综和数学撑着,那时候刚好上了2A线,纯属于2A尾,不过也罢,人嘛,努力了就好.到了开始填志愿了,那时候我一心想当一名初中或高中教师,很喜欢在讲台上淋漓尽致的感觉,所以在2A档上全部选教师专业,老爸老妈极力反对,叫我不要一根筋,后面还是选了,可惜天不人愿,一个都不中,后面接到一学校打电话来说“

vba实现excel二级联动多选功能

要求 二级菜单需要根据一级菜单的不同变换内容 二级菜单为多选框,选择后,以逗号分隔显示在单元格内 实现 先上效果图,如下图图一所示,这里面是excel2013版本 图一效果图 数据源放在了sheet2里面,数据源如下图二所示.这里,使用第一行为第一级即H列的数据源[H列加数据验证为序列,源为sheet2的第一列,度娘有很详细的步骤]:I列根据H列的不同,加载对应列为多选的选项. 图二数据源 在编写代码的时候,一定要记得先加控件,步骤图如下图三所示,图四是控件的属性图,另外,请先确定启用了宏和开发

JQuery实现列表中复选框全选反选功能封装

JQuery实现列表中复选框全选反选功能封装 我们在做列表的时候经常会遇到全选,反选进行批量处理问题,例如: 我当时就是简单的实现了,然后想封装到公共的js中,封装的太烂,不好意思贴出来了(就是把实现代码之间放到公共js中,然后每个页面都用固定的id,class,现在想想我都不好意思叫他封装了),然后想到之前老大有写过这个功能去看下他怎么写的,真是没有对比就没有伤害啊,这才叫封装: 1 $(':checkbox[data-check-target]').click(function () { 2

选个大市场,组建最优秀的团队,拿到花不完的钱(转)

<参与感>是一本书,作者是小米副总裁黎万强,这本书 2014 年 8 月横空出世以来至今余温不减,与其说此书是小米给传统企业转型互联网奉献了一本很好的案例集,不如说是小米从屌丝圈里发迹后向高大上的商业财经圈一交了一份骄人的报告.原来小米一直默默的混屌丝圈,忙着抓用户,忙着哄粉丝,忙着兑现承诺的每周迭代.你媒体也好.商学院也好,讨论什么模式趋势也好.还是管理运营也好,我都没时间陪你们玩.现在我混得算很成功了,还似乎还引发了传统企业研究与学习的热潮,更引起了商界大佬们的高度关注,不是在央视经济年度

为什么要用Sitecore - 老板老大们看过来~

为什么要用Sitecore 上一篇从开发者角度谈了下为什么要用Sitecore,这篇希望老板老大们(有开发平台决定权的)能够了解一下为什么要用Sitecore. 第一个原因就是:贵 当有了买法拉利的预算,大部分人不会去买夏利(貌似市场上已经很难见到夏利了).道理很简单:一分价钱一分货,稀饭饱肚不顶饿. 付款方式很灵活: 可以一次性付款,也可以按年付费: 作为一个平台,可以选择乞丐版,也可以选择各种加持都具备的豪华版: 可以根据使用量付款,一个服务器付一个钱,两个服务器s付两个钱: 每个国家和地区

开源API网关,你选对了么?

开源API网关,你选对了么? api网关的本质 不用扯那么多,也不用画图,一句话说清楚 api网关:流量总入口,得以集中控制! 就这么简单 api网关协议上最基本要支持HTTP 和 WebSocket,功能强大点的更会支持tcp/udp的负载均衡接入 正因为支持的是http协议,所以api网关不仅仅可以作为 RESTful API 接入,接入带页面的web都可以的,完全可以当成一个web负载均衡器使用 api网关的作用 解决:认证.鉴权.安全.流量管控.缓存.服务路由,协议转换.服务编排.熔断.