把整数转换成十进制过程
十进制有是个不同的符号:
conv_string="0123456789"
计算过程
比十小的整数,转换成十进制,直接查找conv_string:conv_string[n]
比十大的整数,拆成一系列比十小的整数,逐个查表,如769,拆成7,6,9查表可以得到769。
递归写法
套用递归订定律,找到递归的“基本结束条件”:小于十的整数
使用整数除和求余数两个计算将整数一步步拆开。
除以“进制基base” (// base)
对“进制基”求余数 (% base)
问题分解:
798 798 → 798//10 + '8' 79 → 79 //10 + '9' 7 → 7 <10 →‘7’
代码:
def toStr(n,base): convert_string='0123456789ABCDEF' if n<base: return convert_string[n] return toStr(n //base,base)+convert_string[n % base] print(toStr(1000,10)) print(toStr(1000,8)) print(toStr(1000,16))
输出结果
1000 1750 1000 3E8