python算法和数据结构笔记--递归--英国标尺的绘制

<Data Structures andAlgorithms in Python> Michael T.Goodrich,Roberto Tamassia,Michael H.Goldwasser 学习笔记,内容源自该书

英国标尺的绘制

每一寸一个数字标签,一个整英寸里有次级的标注线,比如1/2英寸,1/4英寸,刻度线长度依次变短。当刻度长度减小一般时,刻度线减少一个-符号。



a:4级刻度的2寸尺子,b:5级刻度的1寸尺子,c:3级刻度的3寸尺子


#画一个给定长度L主刻度
def draw_line(tick_length,tick_label=''):
    line = '-'*tick_length
    if tick_label:
        line += ' ' + tick_label
    print(line)
#画主刻度中间的次刻度,刻度级数为L-1,递归
def draw_interval(center_length):
    if center_length > 0:
        draw_interval(center_length - 1)
        draw_line(center_length)
        draw_interval(center_length - 1)
#画指定长度及刻度级数的尺子
def draw_ruler(num_inches, major_length):
    draw_line(major_length, '0')
    for j in range(1,1 + num_inches):
        draw_interval(major_length-1)
        draw_line(major_length,str(j))


递归过程图解



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值