鱼C论坛

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

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

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

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

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

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

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


一星答案:

  1. count=1
  2. #设置一个计数器用于报数
  3. def fun(x):
  4.         global count
  5.         #Python2当函数内需要对全局变量赋值时需要先声明
  6.         if len(x)==1:
  7.                 print x
  8.         #退到只剩1个人的时候就能知道答案
  9.         else:
  10.                 for i in x:
  11.                         if count==3:
  12.                                 n=x.index(i)
  13.                                 x[n]='a'
  14.                                 count=1
  15.                         #当报数到3时将该人赋值为a,并重置计数器
  16.                         else:
  17.                                 count+=1
  18.                         #没报到3就下一个
  19.                 for i in x:
  20.                         if i=='a':
  21.                                 del x[x.index(i)]
  22.                         #将变成3的人统统消灭
  23.                 fun(x)
  24.                         #数组已经改变了,重新调用一次函数
  25. n=input('请输入人数:')
  26. array=range(1,n+1)
  27. fun(array)        
复制代码



二星答案:

  1. n = int(input('请输入n的值:'))
  2. arr = list(range(1,n+1,1))
  3. i = 1
  4. m = 0
  5. while len(arr)>1:
  6.     #print('m',m,'i',i)
  7.     if i == 3 and m < len(arr):
  8.         arr.pop(m)
  9.         i = 1
  10.         continue
  11.     elif m > len(arr)-1:
  12.         m = 0
  13.         continue
  14.     m += 1
  15.     i += 1
  16. print(arr)
复制代码


三星答案:

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


基础语法:



算法讲解:





评分

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

查看全部评分

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-8-29 20:00:43 | 显示全部楼层
学习一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

  学习一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-29 23:15:10 From FishC Mobile | 显示全部楼层
假设一共10个人,第一次去掉3,然后是从4开始报数还是从1开始报数?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

  5. if __name__ == '__main__':
  6.     n = int(input('请输入n的值:'))
  7.     print(foo(list(range(1, n+1))))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-30 08:35:55 | 显示全部楼层
学习一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-30 08:37:39 | 显示全部楼层
约瑟夫环问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-30 08:50:26 | 显示全部楼层
学习一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-30 10:22:13 | 显示全部楼层
学习一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-30 15:33:36 | 显示全部楼层
三星答案非常棒。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-30 16:16:18 | 显示全部楼层
学习一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-15 13:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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