废话不多说, 我知道大多数人查算法题目的目的.先直接贴出我的solution.
def revint(n):
a,b = divmod(n,10)
if a == 0:
return b
else:
w = 10**len(str(a))#w变量必不可少,如果有不用w变量的方法希望分享
return b*w + revint(a)
面试官要求用递归实现将一个整型反转,当时因为没有准备过算法题目,所以没有答上来,只能说用str(n)[::-1]可以解决.这显然不是考察的内容.
我一直还是很好奇为什么没有好的书籍介绍如何写出优秀的递归代码,递归可以算是一个一直困扰着我但是又找不到相关知识学习的一个领域(2018.3.3 函数式编程(funtional programming)似乎可以解答我的疑惑, 希望招聘季过了之后有时间好好学习lisp填补这个洞)