题解 | #删数#

删数

http://www.nowcoder.com/practice/f9533a71aada4f35867008be22be5b6e

思路:如果是第1个数和第二个数,每次都将第一个数挪到最后一位,并将第一个数删掉;

如果是第3个数(每次都删除了数,所以这个数现在也在第一位),那就只删除第一个数

第一位处理:

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7 0(第一个数挪到第最后一位)

1 2 3 4 5 6 7 0(删除第一个数)

第二位处理:

1 2 3 4 5 6 7 0

1 2 3 4 5 6 7 0 1(第一个数挪到第最后一位)

2 3 4 5 6 7 0 1(删除第一个数)

第三位处理:

2 3 4 5 6 7 0 1

3 4 5 6 7 0 1(删除第一个数)

代码如下:

if __name__ == "__main__":
    while True:
        try:
            n = int(input())
            num = [i for i in range(n)]

            count = 0
            while len(num) > 1:
                count += 1
                if count != 3:
                    num.append(num[0])
                else:
                    count = 0
                del num[0]

            print(num[0])
        except:
            break
全部评论

相关推荐

蚂蚁 基架java (n+6)*16 签字费若干
点赞 评论 收藏
分享
11-18 15:57
门头沟学院 Java
最终归宿是测开:这个重邮的大佬在重邮很有名的,他就喜欢打92的脸,越有人质疑他,他越觉得爽😂
点赞 评论 收藏
分享
11-02 09:49
已编辑
货拉拉_测试(实习员工)
热爱生活的仰泳鲈鱼求你们别卷了:没事楼主,有反转查看图片
点赞 评论 收藏
分享
评论
4
收藏
分享
牛客网
牛客企业服务