华为机试【7、报数问题】

7、标题:报数问题
【报数问题】有n个人围成一圈,顺序排号为1-n,从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
输入描述:
输入人数n(n<1000)
输出描述:
输出最后留下来的是原来第几号
示 例:
输入
2
输出
2

def baoshu(n):
    arr = [x for x in range(1, n + 1)]
    i = 1
    j = 0
    while len(arr) > 1:
        if i == 3:
            arr.pop(j)
            i = 1
        else:
            i += 1
            j += 1
        if j > len(arr) - 1:
            j = 0
    return arr[0]


print(baoshu(5))
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 18:02
好不容易拿到了字节Offer,鼠鼠做后端的,但家里人觉得可能被裁员不稳定,让鼠鼠去投国企,现在好纠结到底该咋选
文档传偷助手:该投就投吧,不过建议别放弃offer 拿到手里的才是最好的
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
但听说转正率很低,我现在有在实习了,好纠结要不要去
熬夜脱发码农:转正率低归低,但是实习的经历你可以拿着,又不是说秋招不准备了
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务