递归 整数转换为任意进制递归算法

把整数转换成十进制过程

十进制有是个不同的符号:

conv_string="0123456789"

计算过程

  1. 比十小的整数,转换成十进制,直接查找conv_string:conv_string[n]

  2. 比十大的整数,拆成一系列比十小的整数,逐个查表,如769,拆成7,6,9查表可以得到769。

递归写法

  1. 套用递归订定律,找到递归的“基本结束条件”:小于十的整数

  2. 使用整数除和求余数两个计算将整数一步步拆开。

除以“进制基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


相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...