Python数据结构考试题,数据结构与算法python版 期末考试

  Python数据结构考试题,数据结构与算法python版 期末考试

  注意:本文涉及的所有代码都经过Python 3.7测试,以确保其严谨性。

  这篇文章的阅读时间大约是7分钟。

  递归编程练习3: ASCII Shelbinski地毯

  谢尔宾斯基地毯

  谢尔宾斯基地毯是类似上图的方形分形图案。每块地毯可以分成9块大小相等的,中间挖空,其余由更小的地毯组成。

  给定地毯尺寸(行数)和组成地毯的字符元素,请打印相应的地毯图形。

  注意:空腔用半宽空格表示;当给定字符元素的长度不为1时,空格数必须对应于字符长度。

  输入格式:

  输入两条线,即地毯的边长,即组成地毯的元素个数为——正整数n,组成地毯的元素为3354串c。

  输入数据保证n是3的正整数幂。

  输出格式:

  Kjellbing地毯由N行长度为N*len(c)的字符串组成。

  输入样本:

  九

  []

  输出样本:

  [][][][][][][][][]

  [] [][] [][] []

  [][][][][][][][][]

  [][][] [][][]

  [] [] [] []

  [][][] [][][]

  [][][][][][][][][]

  [] [][] [][] []

  [][][][][][][][][]

  参考计划模板:

  def地毯(N,char):

  #此处代码

  及格

  n=int(input())

  c=输入()

  地毯(北美)

  答:这里我们主要用递归来解题。关键在于在哪里填充空格字符(即挖空)和在哪里填充字符串C为一个最小条件。

  我们可以通过设置坐标系和坐标(x,y)来精确控制空格字符或字符串C的填充位置。

  以下面最简单的3 * 3 Kjellbing地毯为例,坐标(x,y)可以精确表示途中的任何地方。例如,当x=0,y=0时,坐标(0,0)表示左上角的第一个[],而坐标(1,1)表示切尔宾斯基地毯的镂空部分,即填充有空格符号的位置。

  [][][]

  [] []

  [][][]

  那么,如何在程序中实现(x,y)坐标的模拟呢?双for循环是我们正在寻找的工具:

  对于范围(N)中的x:

  对于范围(N)中的y:

  最后,不要忘记换行符 \n 的用法。

  参考代码和详细注释如下:

  def地毯(N,c):

  #以X,Y为坐标点,判断哪个坐标位置填充字符串C,哪个位置填充空格字符(即镂空)。

  def judge(n,x,y):

  如果n==1:

  True #用满足True条件的(x,y)坐标点填充字符串C。

  n1=n //3

  如果n1=x n1 * 2且n1=y n1 * 2:

  False #满足False条件的(x,y)坐标点用空格字符填充。

  Return judge(n1,x% n1,y% n1) #递归继续判断,直到满足基本结束条件。

  D= #创建一个变量d,用于显示Kjellbing地毯成品。字符串形式。

  对于范围(N)中的x:

  对于范围(N)中的y:

  if judge(N,x,y):

  d=c

  否则:

  d=(len(c) * )

  D=d \n #这里有一个换行符。

  返回d

  N=int(input())

  c=输入()

  印花(地毯(N,c))

  九

  ()

  ()()()()()()()()()

  () ()() ()() ()

  ()()()()()()()()()

  ()()() ()()()

  () () () ()

  ()()() ()()()

  ()()()()()()()()()

  () ()() ()() ()

  ()()()()()()()()()

  未完待续。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: