把整数转换成十进制过程
十进制有是个不同的符号:
conv_string="0123456789"
计算过程
比十小的整数,转换成十进制,直接查找conv_string:conv_string[n]
@H_419_18@比十大的整数,拆成一系列比十小的整数,逐个查表,如769,拆成7,6,9查表可以得到769。
@H_419_18@递归写法
套用递归订定律,找到递归的“基本结束条件”:小于十的整数
@H_419_18@使用整数除和求余数两个计算将整数一步步拆开。
@H_419_18@除以“进制基base” (// base)
对“进制基”求余数 (% base)
问题分解:
798798 → 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))
输出结果
1000175010003E8
以上是内存溢出为你收集整理的递归 整数转换为任意进制递归算法全部内容,希望文章能够帮你解决递归 整数转换为任意进制递归算法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)