递归的应用:任意进制转换
#学自北京大学陈斌老师
前言:
递归三定律的回顾:
❖为了向阿西莫夫的“机器人三定律”致敬
,递归算法也总结出“三定律”
1,递归算法必须有一个基本结束条件(最小规模问题的直接解决)
2,递归算法必须能改变状态向基本结束条件演进(减小问题规模)
3,递归算法必须调用自身(解决减小了规模的相同问题)
一、三定律与进制转换的关联?
基本结束条件:
余数小于“进制基base”(要转换成n进制的n),是“基本结束条件”,可直接进行查表转换
减小问题规模+调用自身:
整数商成为“更小规模”问题,通过递归调用自
身解决
二、程序代码:
#十进制转换为任意进制
def tenton(num,n):
convertString = "0123456789ABCDEF"
if num < n:
return convertString[num]
else:
return convertString[num%n] + tenton(num//n,n) ```