蓝桥杯Python-约瑟夫问题

该文章描述了一个圆桌游戏,编号为n的人开始报数,数到m的人出局,以此类推,直到只剩一人。提供的Python代码实现了这一逻辑,通过模拟报数过程找出最后胜出者的编号。
摘要由CSDN通过智能技术生成

一、问题描述

已知n个人(以编号1,2,3,...,n 分别表示)围坐在一张圆桌周围。从编号为n的人开始报数,数到m的那个人出局,出局那个人的下一个又从1开始报数,数到m的那个人出局,如此循环,直到剩余最后一个人。

二、举例

样例输入:10,3(10个人,数到3的出局)

样例输出:4

三、代码

n,m=map(int,input().split(','))
people=[1 for x in range(n+1)]
people[0]=0
x=1
y=0
while sum(people)>1:
    if x==n+1:
        x=1
    else:
        if people[x]==0:
            x+=1
        else:
            y+=1
            if y==m:
                people[x]=0
                y=0
            else:
                x+=1
print(people.index(1))

四、运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值