您的位置:首页 > 理论基础 > 数据结构算法

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

2017-08-30 15:22 1361 查看
<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))


递归过程图解

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息