|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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函数,从而实现如下效果:
- def process(n, tally, result ):
- while n >= 10:
- tally, result = tally(n %100 //10, n % 10)
- n = n // 10
- return result()
- def ups(k):
- pass
复制代码
- >>> f,g = ups(3)
- >>> process(1200849,f,g)
- True
- >>> process(94004,f,g)
- False
- >>> process(122333445,f,g)
- False
- >>> process(0,f,g)
- False
- >>>
复制代码
看答案前,自己动动手,锻炼自己逻辑
初步一看process的tally返回的是2个函数地址,result返回的一个bool,tally返回什么未知。
我在没看答案前是这么想的:
- def ups(k):
- def tally(left, right):
- """
- :param left: 非负整数N的倒数第2位
- :param right: 非负整数N的倒数第1位
- :return: 返回两个什么值呢?
- """
- pass
- def result():
- """
- :return:这个bool 如何与k进行关联判断
- """
- pass
- return tally, result
复制代码
|
|