甘肃自助建站系统哪家好,交流网站建设项目背景,论文目录链接怎么做,面向服务的关系建设网站注#xff1a;本文如涉及到代码#xff0c;均经过Python 3.7实际运行检验#xff0c;保证其严谨性。本文阅读时间约为7分钟。递归编程练习题3#xff1a;ASCII谢尔宾斯基地毯谢尔宾斯基地毯谢尔宾斯基地毯是形如上图的正方形分形图案#xff0c;每个地毯可分为等大小的9份…注本文如涉及到代码均经过Python 3.7实际运行检验保证其严谨性。本文阅读时间约为7分钟。递归编程练习题3ASCII谢尔宾斯基地毯谢尔宾斯基地毯谢尔宾斯基地毯是形如上图的正方形分形图案每个地毯可分为等大小的9份其中中央挖空其余均由更小的地毯组成。现给定地毯大小(行数)与组成地毯的字符元素请打印相应的地毯图形。注空腔以半角空格表示当给定字符元素长度不为1时空格数须与字符长度对应。输入格式:输入为两行分别为地毯的边长即组成地毯的元素的个数——正整数N以及组成地毯的元素——字符串c。输入数据保证N为3的正整数幂。输出格式由N行长度为N*len(c)的字符串构成的谢尔宾斯基地毯。输入样例9[]输出样例[][][][][][][][][][] [][] [][] [][][][][][][][][][][][][] [][][][] [] [] [][][][] [][][][][][][][][][][][][] [][] [][] [][][][][][][][][][]参考程序模板def carpet(N,char):# code herepassnint(input())cinput()carpet(n,c)解答这里主要是用递归解决问题。关键在于对于一个最小的条件来说哪里填充空格符(即挖空)哪里填充字符串c。我们可以通过设定坐标系及坐标(x, y)一样的东西来精准控制何处该填充空格符还是字符串c。拿下面最简单的一个3 * 3的谢尔宾斯基地毯来说坐标(x, y)可以精确表示途中任意一处。例如当x 0y 0时即坐标(0, 0)表示左上角第一个[]而坐标(1, 1)则表示谢尔宾斯基地毯挖空的那个部分也就是填充了空格符的那一个位置。[][][][] [][][][]那么如何在程序中实现(x, y)坐标的模拟呢双重for循环就是我们要找的工具for x in range(N):for y in range(N):最后别忘了换行符\n的使用。参考代码及详细注释如下def carpet(N, c):# 以xy为坐标点来判断什么坐标位置填充字符串c以及什么位置填充空格符(即挖空)。def judge(n, x, y):if n 1:return True # 符合True条件的(x, y)坐标点填充字符串c。n1 n // 3if n1 x n1 * 2 and n1 y n1 * 2:return False # 符合False条件的(x, y)坐标点填充空格符。return judge(n1, x % n1, y % n1) # 递归继续判断直到满足基本结束条件为止。d # 创建一个变量d用来展示最后完成的谢尔宾斯基地毯。字符串形式。for x in range(N):for y in range(N):if judge(N, x, y):d celse:d (len(c) * )d d \n # 这里有个换行符。return dN int(input())c input()print(carpet(N, c))9()()()()()()()()()()() ()() ()() ()()()()()()()()()()()()() ()()()() () () ()()()() ()()()()()()()()()()()()() ()() ()() ()()()()()()()()()()To be continued.