鱼C论坛

 找回密码
 立即注册
查看: 6344|回复: 45

[技术交流] Python: 每日一题 47

[复制链接]
发表于 2017-5-16 17:22:09 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 ooxx7788 于 2017-5-19 08:52 编辑

考验翻译水平的时候到了。

在一座远古的遗迹中,一群考古学家发现了一个有着许多孔洞的神秘函数,名叫get_num(n)。他们试着往其中加入一些参数调用这个函数,得到以下结果:
  1. getNum(300) #-> returns 2
  2. getNum(90783) #-> returns 4
  3. getNum(123321) #-> returns 0
  4. getNum(89282350306) #-> returns 8
  5. getNum(3479283469) #-> returns 5
复制代码


考古学家给这个答案弄得一脸懵逼。就在陷入绝望之际,伟大的超级牛逼的程序员出现了。你能够理解这个神秘函数,并且重写它吗?


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

本帖被以下淘专辑推荐:

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

使用道具 举报

发表于 2017-5-16 17:53:28 | 显示全部楼层
仅仅这些条件太少了吧?
如果只是这些条件,最简单的办法就是构造一个y=a*x+b*x+c*x+d*x+e*x的函数,然后分别把(300,2),(90783,4),(123321,0)等5组数代入,5个方程5个未知数,然后就得到了y=a*x+b*x+c*x+d*x+e*x的函数。
但是,实际情况肯定不是这样的。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-16 18:24:04 | 显示全部楼层
本帖最后由 ooxx7788 于 2017-5-16 18:26 编辑
jerryxjr1220 发表于 2017-5-16 17:53
仅仅这些条件太少了吧?
如果只是这些条件,最简单的办法就是构造一个y=a*x+b*x+c*x+d*x+e*x的函数,然后 ...


请仔细读题,仔细观察函数与返回值的关系,理解题意。本题的信息就这么多,且足够解题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-16 18:47:56 From FishC Mobile | 显示全部楼层
难道是点这串数字中有多少个?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-16 18:48:11 From FishC Mobile | 显示全部楼层
多少个圈?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-16 18:49:32 From FishC Mobile | 显示全部楼层
6,9,0一个圈,8两个圈,其他没有圈…
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2017-5-16 18:49:43 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-16 21:26:44 | 显示全部楼层
getNum(300) #-> returns 2
getNum(90783) #-> returns 4
getNum(123321) #-> returns 0
getNum(89282350306) #-> returns 8
getNum(3479283469) #-> returns 5


第一个300,两个0,也就是两个孔洞,return 2
第二个90783,9和0一个孔,8两个孔,return 4
第三个123321,没有孔洞,return 0
第四个 有898006 八个孔 return 8
第五个 3479283469 以此类推 也就是有五个孔洞,所以 return 5
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2017-5-16 21:33:50 | 显示全部楼层
在函数内先初始化sum=0,然后对参数n的每一位数做判断,如果为6、9、0,则sum +=1,为8则sum +=2,最后return sum。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-16 21:53:10 | 显示全部楼层
...有象形文字的赶脚
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-16 22:11:48 | 显示全部楼层
本帖最后由 jerryxjr1220 于 2017-5-16 22:13 编辑
  1. def get_num(n):
  2.     num_dict = {'0':1, '6':1, '8':2, '9':1}
  3.     return sum([num_dict.get(i,0) for i in str(n)])
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-5-17 09:14:43 | 显示全部楼层
这道题更像脑筋急转弯。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-17 09:50:38 | 显示全部楼层
我遇到了一个假的编程题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-17 10:06:56 | 显示全部楼层
脑筋急转弯+1...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-17 10:14:14 | 显示全部楼层
从数学上来讲,这个题目就有问题,给了5组数,那我假设这个函数是个5元一次方程,那我可以代入这5个值进去得到一个方程
问题是,这个方程只能满足这5组数字,这种方程并不唯一
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-17 10:16:48 | 显示全部楼层
冬雪雪冬 发表于 2017-5-17 09:14
这道题更像脑筋急转弯。

传说中的大学生无解,而幼儿园的小朋友秒解的数圈圈图文题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-17 10:30:20 | 显示全部楼层
gopythoner 发表于 2017-5-17 10:16
传说中的大学生无解,而幼儿园的小朋友秒解的数圈圈图文题

哈哈,连续出了几天的计算题了。突然转个画风,打破一下定势思维。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-18 14:53:11 | 显示全部楼层
应该是这串数字所包含“孔洞“的数量吧
0,6,9->1
8->2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-19 00:49:51 | 显示全部楼层
新手
  1. dict1={"0":1,"6":1,"8":2,"9":1}
  2. def getNum(number):
  3.     sum=0
  4.     l=[]
  5.     for i in number:
  6.         l.append(i)
  7.     print(l)
  8.     for x in dict1:
  9.         for y in l:
  10.            if x==y:
  11.                 sum=sum+dict1[x]
  12.     #return sum
  13.     print(sum)
  14. number=input("Pls enter a number: ")
  15. tt=getNum(number)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-5-19 00:59:31 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 01:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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