鱼C论坛

 找回密码
 立即注册
查看: 2036|回复: 2

[技术交流] 分享一个题目(计算一个非负整数n是否有K增加)

[复制链接]
发表于 2019-9-20 03:47:47 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Stubborn 于 2019-9-20 04:31 编辑

至于为什么分享,我觉得代码写的非常棒,可能是个人是小白

首先解释下题目非负整数n是否有K增加是什么意思。举几个例子就能动
  • 当整数N = 1200849那么K=3,       解释:1到2 , 0到8,4到9总计增加三次
  • 当整数N = 94004那么K=1,          解释:0到4 总计增加一次
  • 当整数N = 122333445那么K=4,   解释:1到2 , 2到3,3到4, 4到5总计增加四次
  • 当整数N = 61127那么K=2,          解释:1到2 , 2到7总计增加二次



当当,问题1来了,如果要你编写一个函数,给定参数N,返回K值,你会怎么写呢?
当然这个不是重点,重点 是题目不是这么玩的。

题目是要求我们完善ups函数,从而实现如下效果:
  1. def process(n, tally, result ):
  2.     while n >= 10:
  3.         tally, result = tally(n %100 //10, n % 10)
  4.         n = n // 10
  5.     return result()

  6. def ups(k):
  7.     pass
复制代码

  1. >>> f,g = ups(3)
  2. >>> process(1200849,f,g)
  3. True
  4. >>> process(94004,f,g)
  5. False
  6. >>> process(122333445,f,g)
  7. False
  8. >>> process(0,f,g)
  9. False
  10. >>>
复制代码



看答案前,自己动动手,锻炼自己逻辑
初步一看process的tally返回的是2个函数地址,result返回的一个bool,tally返回什么未知。
我在没看答案前是这么想的:
  1. def ups(k):
  2.     def tally(left, right):
  3.         """
  4.         :param left: 非负整数N的倒数第2位
  5.         :param right: 非负整数N的倒数第1位
  6.         :return: 返回两个什么值呢?
  7.         """
  8.         pass

  9.     def result():
  10.         """
  11.         :return:这个bool 如何与k进行关联判断
  12.         """
  13.         pass

  14.     return tally, result
复制代码


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


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

使用道具 举报

 楼主| 发表于 2019-9-20 04:43:44 | 显示全部楼层
@塔利班 这种严格严格意义上说,应该不算递归函数吧,大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-20 08:42:12 | 显示全部楼层
没看到哪里是递归,,感觉也没必要用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 23:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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