丫的前天一个朋友给我说一个需求:

有100个数排成一个圈,从0开始跳,每跳3次,就把第三次的数删除,依次循环下去,问最后一个数字是谁???   或。。。 这不是亚瑟什么循环吗,帮忙写一下吧。

一开始用c写,个人感觉好麻烦,尤其是用链表。

后来用shell写,靠,更麻烦,而且效率太丫的低了,跑起来要10分钟才能得到结果

最后还是决定用python:

#! /usr/bin/python2.6

list1 = range(100)     # define 100 个数字

while list1:

   if   len(list1) == 1:

        print  'The result is:',list1

        break

   elif   len(list1) == 2:

        print 'The result is:',list1[1]

        break

    else:

        del list1[2]        # 每跳3次,删除,如果想看到过程,也可以用 list1.pop(2)

        list1.append(list1.pop(0))    # 把开头的2个数放到末尾,因为这个不像用c的链表来实现,所以我想到了这个办法,不知道大家有更好的方法吗。

        list1.append(list1.pop(0))

完成了,感觉用python好简单,这是个人的思路,也可能有更好的办法。