微信公众号"算法与编程之美",欢迎关注,及时了解更多此系列文章。

问题描述

打印大X

样式要求:

高度=15, 笔宽=3

***           ***

 ***        ***

 ***       ***

  ***     ***

   ***   ***

    *** ***

     *****

      ***

     *****

    *** ***

   ***   ***

  ***     ***

 ***       ***

 ***        ***

***           ***

高度=8, 笔宽=5

***** *****

 **********

 ********

  ******

  ******

 ********

 **********

***** *****

为了方便检查空格用‘.’代替

解决方案

一个叉大概分三个环节

一是最开始笔宽不交叉中间有空的地方

二是中间交叉但又比笔宽大的地方

三是中间等于笔宽的地方

将三个地方分开实现打印用while循环给定条件就行了。


h,x=map(int,input().split(' '))
 m=h-x-1
 i=0
 while m>0:
      print('.' * i + '*'*x + "."  * (m) + '*'*x + '.' * i)
      m-=2
      i+=1
 s=q=h+x-1-2*(i)
 while q>=x:
      print('.'*i+'*'*q+'.'*i)
      q-=2
      i+=1
 q=q+4
 i=i-1
 while q<=s:
      i=i-1
      print('.' * i + '*' * q + '.' * i)
      q+=2
 m=m+2
 i-=1
 while m<=h-x-1:
      print('.' * i + '*' * x + "."  * (m) + '*' * x + '.' * i)
      m+=2
      i-=1



END

实习编辑   |   王楠岚

责       编   |   王自强


微信号:算法与编程之美          

Python|打印给定高度和笔宽的叉_编程之美

长按识别二维码关注我们!

温馨提示:点击页面右下角发表评论,期待您的参与!期待您的转发!