陈斌老师《数据结构与算法Python版》第五周作业——ASCII谢尔宾斯基地毯

  • 题目
  • 思路
  • 程序如下
  • 总结

题目

谢尔宾斯基地毯是形如上图的正方形分形图案,每个地毯可分为等大小的9份,其中中央挖空,其余均由更小的地毯组成。

现给定地毯大小(行数)与组成地毯的字符元素,请打印相应的地毯图形。

注:空腔以半角空格表示;当给定字符元素长度不为1时空格数须与字符长度对应

输入格式:

输入为两行,分别为地毯大小正整数N与组成元素字符串c

输入数据保证N为3的正整数幂

输出格式:

由N行长度为N*len©的字符串构成的谢尔宾斯基地毯

输入样例:

9

[]

思路

用递归方法
向最小格式迭代
每次按规律增加图形的长宽

程序如下

def carpet(N, char):len_c = len(char)if N == 3:return [char*3, char + ' '*len_c + char, char*3]       #最小格式时直接输出else:mylist = carpet(N/3, char)      #将图形存为一个列表for j in range(2):        #增加竖向宽度for i in range(int(N/3)):mylist.append(mylist[i])        for i in range(len(mylist)):        #增加横向宽度if i >= N/3 and i < N/3*2:mylist[i] = mylist[i] + ' '*len_c * int(N/3) + mylist[i]   #中间留白else:mylist[i] = mylist[i]*3return mylistn = int(input())
c = input()
# n = 27
# c = '[]'
if n == 0:    # n=0直接输出print('')
else:ans = carpet(n, c)for i in ans:   #打印图形print(i)

总结

增加长宽时,要注意carpet(N, char)中char字符的宽度


学习陈斌老师的数据结构与算法Python版课有感

陈斌老师《数据结构与算法Python版》第五周作业——ASCII谢尔宾斯基地毯相关推荐

  1. python数据结构与算法40题_Python数据结构与算法40:递归编程练习题3:ASCII谢尔宾斯基地毯...

    注:本文如涉及到代码,均经过Python 3.7实际运行检验,保证其严谨性. 本文阅读时间约为7分钟. 递归编程练习题3:ASCII谢尔宾斯基地毯 谢尔宾斯基地毯 谢尔宾斯基地毯是形如上图的正方形分形 ...

  2. 数据结构与算法Python版-第五周作业

    1. 进制转换(10分) 题目内容: 给定一个M进制的数,请将其转换为N进制并输出 输入格式: 两行,第一行为空格分隔的两个数字,分别为10进制表示的M与N:其中M, N均满足2 ≤ M.N ≤ 36 ...

  3. python实现——ASCII谢尔宾斯基地毯

    目录 一.题目内容: 二.思路: 三.python代码: 4.总结 一.题目内容: 二.思路: 看到这个图案,肯定是自相似的,所以肯定用递归解决这个问题. 但是具体怎样的呢? (1)这个其实就是二维矩 ...

  4. MOOC数据结构与算法Python版-第五周编程作业

    1 进制转换(10分) 题目内容: 给定一个M进制的数,请将其转换为N进制并输出 输入格式: 两行,第一行为空格分隔的两个数字,分别为10进制表示的M与N:其中M, N均满足2 ≤ M.N ≤ 36 ...

  5. mooc数据结构与算法python版第十一周作业_中国大学 MOOC_数据结构与算法Python版_2020最新答案学习指南...

    中国大学 MOOC_数据结构与算法Python版_2020最新答案学习指南 更多相关问题 [判断题]实际集成运放的上限截止频率为无穷大 [多选题]现代城市的发展凸现出与以往不同的动力机制包括 教师在引 ...

  6. 数据结构与算法Python版-第六周作业

    1. 铺瓷砖(10分) 题目内容: 给定一个长度为N的区域,及4种不同长度的瓷砖:灰瓷砖(长为1格).红瓷砖(长为2格).绿瓷砖(长为3格)与蓝瓷砖(长为4格),求所有不同的铺满整个区域的方法数. 例 ...

  7. mooc数据结构与算法python版第十周作业_中国大学mooc慕课_数据结构与算法Python版_章节答案...

    新入对于接诊人的院病与查房,中国章节在多必须经治间内进行医师长时. 大学答案高的主要文库日常利用率较有(. 须注下问题:慕课意以,者以知识作为的投资产权出资.在配置上电装,该装装在置(线应部位)的接地 ...

  8. # python # # 分形 # Sierpinski Carpet 谢尔宾斯基地毯 续

    运行过程绘图和动图: 原创声明需要超过300字,贴一点生成动图的代码片段. # encoding=utf8from PIL import Imagefiles = ['#000000.png', '# ...

  9. python与分形0009 - 谢尔宾斯基地毯

    分形介绍 分形是一个悖论. 它惊人的简单,却又无限的复杂. 它很新,却又比尘埃更古老. 分形是什么?它们是从哪里来的?我们为什么要在乎? 20世纪非传统的数学家Benoit Mandelbrot在19 ...

最新文章

  1. css(hr元素)水平线的定位
  2. hdu 2544(最短路径)
  3. Jquery中怎样判断是否有网络
  4. Splitting into digits
  5. drupal6 笔记
  6. HighCharts点击柱形或饼块等加URL或Click事件
  7. CoreML实现的MobileNet
  8. php 容器实现,PHP 依赖注入容器实现
  9. 6000个边缘Kubernetes节点驱动城市80万次智能停车,如何成为可能?
  10. android 顶部标签切换,Android实现底部切换标签
  11. 微型计算机文献,微型计算机控制系统期刊文章参考文献 哪里有微型计算机控制系统参考文献...
  12. 判断一个数能否同时被3和5整除(信息学奥赛一本通-T1046)
  13. 《0元搭建个人博客史上最详细教程》(域名申请及备案篇)
  14. 矩阵的初等变换与线性方程组
  15. 网上出售企业支付宝骗局,不看后悔
  16. C语言的fopen()函数
  17. 5089. 安排会议日程
  18. 小说作者推荐: 闹月合集
  19. 美国计算机科学排名2010,2010年美国大学计算机科学专业研究生排名
  20. xp局域网内共享设置

热门文章

  1. 腾讯电竞:电竞产业已成风口 良性发展需要靠教育稳固根基
  2. 谷歌地图标注_复工第一天发现被谷歌地图标注为“暂停营业”
  3. wsus无法同步计算机,Windows Update无法与WSUS同步,8024401c
  4. 源代码加密软件该如何选择
  5. 电竞CSGO数据API接口 - 【即时指数】API调用示例代码
  6. 一个新手第一次做项目的求助
  7. 怎么在PPT添加备注(只有自己看到)
  8. linux下可视化git工具git-cola安装与使用(HTTP方式)
  9. Mongodb数据库中修改器$push和$addToSet的相同点和不同点
  10. Centos7 卸载 Nginx 并重新安装 Nginx