鱼C论坛

 找回密码
 立即注册
查看: 2995|回复: 11

[技术交流] 0011-编程打卡:按照如下规则进行报数

[复制链接]
发表于 2022-8-29 18:58:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2022-8-29 18:58 编辑

001.png
002.png
003.png
004a.png


一星答案:
count=1
#设置一个计数器用于报数
def fun(x):
        global count
        #Python2当函数内需要对全局变量赋值时需要先声明
        if len(x)==1:
                print x
        #退到只剩1个人的时候就能知道答案
        else:
                for i in x:
                        if count==3:
                                n=x.index(i)
                                x[n]='a'
                                count=1
                        #当报数到3时将该人赋值为a,并重置计数器
                        else:
                                count+=1
                        #没报到3就下一个
                for i in x:
                        if i=='a':
                                del x[x.index(i)]
                        #将变成3的人统统消灭
                fun(x)
                        #数组已经改变了,重新调用一次函数
n=input('请输入人数:')
array=range(1,n+1)
fun(array)        


二星答案:
n = int(input('请输入n的值:'))
arr = list(range(1,n+1,1))
i = 1
m = 0
while len(arr)>1:
    #print('m',m,'i',i)
    if i == 3 and m < len(arr):
        arr.pop(m)
        i = 1
        continue
    elif m > len(arr)-1:
        m = 0
        continue
    m += 1
    i += 1
print(arr)

三星答案:

游客,如果您要查看本帖隐藏内容请回复


基础语法:



算法讲解:





评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
睦ちゃん她爹 + 5 + 5 + 3 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-29 20:00:43 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-29 22:08:26 From FishC Mobile | 显示全部楼层
本帖最后由 atc123 于 2022-8-29 22:17 编辑

  学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-29 23:15:10 From FishC Mobile | 显示全部楼层
假设一共10个人,第一次去掉3,然后是从4开始报数还是从1开始报数?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-29 23:53:07 | 显示全部楼层
本帖最后由 qq1151985918 于 2022-8-30 00:05 编辑
def foo(arr):
    if len(arr) < 3:
        return arr[-1]
    return foo(arr[3:] + arr[:2])

if __name__ == '__main__':
    n = int(input('请输入n的值:'))
    print(foo(list(range(1, n+1))))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-30 08:35:55 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-30 08:37:39 | 显示全部楼层
约瑟夫环问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-30 08:50:26 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-30 10:22:13 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-30 14:38:06 | 显示全部楼层
qq1151985918 发表于 2022-8-29 23:15
假设一共10个人,第一次去掉3,然后是从4开始报数还是从1开始报数?

1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-30 15:33:36 | 显示全部楼层
三星答案非常棒。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-30 16:16:18 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 00:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表