算法题—-酋长的女儿

之前在整理以前写的java排序算法相关实现,整理中发现有一些排序算法没有实现,所以上网搜索相关说明,无意中看到一道算法题,这里记一下实现

题目是这样的:

酋 长的女儿艾丽要出嫁了,按以往的风俗习惯,要搭个高台,台下是众多的求婚者,艾丽在台上扔束花,扔在台下谁身上,艾丽就得嫁给谁。但她担心落不到心爱的雷 蒙身上。艾丽私下约雷蒙商量如何是好。雷蒙想出了一个主意……艾丽便和父亲说:“我不愿意搭台撒花,这么多人来,挤在一起乱哄哄的,没秩序。”父亲说, “不这样也可以,但结婚时要当场在人群中决定嫁给谁,不许指名,方法你自己定。”艾丽高兴的告诉主持人如何行事。婚日来临,人群拥挤,主持人叫求婚者排成 一队,雷蒙在队外数了数队列共有101人,于是自己找了个合适的位置也站在队列中,主持人要大家从前往后1,2,1,2……报数,报单数的退出场外,余下的人位置不变,再重新从前往后1,2,1,2……报数,报单数的退场,如此下去最后只剩一人,艾丽便嫁给谁。大家惊奇的发现最后剩下的竟是雷蒙。请用程序回答雷蒙刚开始站在队列中的第几个位置。

这里是使用python实现的,用了个笨办法,直接模拟退场,直到只剩下最后一个为止:

#!/usr/bin/env python
  
  s=range(1,103)    #102好汉,哈~
  
  def findnum(seq):
      if len(seq)==1:
          print "%r" % s
          return
      else:
         for i in seq[0::2]:          #每次删除奇数的位置
              seq.remove(i)
      findnum(seq)
  
  
  if __name__=="__main__":
      print "%r" % s
      findnum(s)

我不会告诉你,我只想练练python~

» 转载保留版权:《算法题—-酋长的女儿》
» 本文链接地址:https://www.xidige.com/905

打开支付宝扫一扫,即可进行扫码打赏哦

扫码支持
扫码打赏,你说多少就多少

标签:

分享到:

扫一扫 在手机阅读、分享本文

上一篇: 下一篇:
评论区0人评论402人参与

电子邮件地址不会被公开。 必填项已用*标注

*

loading

赞助商广告